由于docker镜像访问很慢,所以使用阿里的镜像加速器。
参考:阿里官方教材
可以通过修改daemon配置文件/etc/docker/daemon.json
来使用加速器
# mkdir -p /etc/docker
# vi /etc/docker/daemon.json
{"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
# systemctl daemon-reload
# systemctl restart docker
帮助命令
-
docker version
查看docker版本 -
docker info
查看docker信息 -
docker --help
查看帮助信息
镜像命令
docker search搜索镜像
# docker search tomcat
docker pull从仓库下载镜像
以下载tomcat为例:
# docker pull tomcat
默认pull的是https://hub.docker.com/,可以指定pull的仓库地址:
# docker pull registry.cn-hangzhou.aliyuncs.com/morris131/jdk:[镜像版本号]
docker images查看镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 4e7840b49fad 8 days ago 529MB
选项:
-
-a:显示所有的镜像
-
-q:只显示镜像id
-
–digests:显示摘要信息
docker rmi删除镜像
# docker rmi tomcat
docker save保存镜像
# docker save -o hello-world.tar hello-world:latest
# ll
total 24576
-rw-------. 1 root root 24576 May 28 09:03 hello-world.tar
docker load导入镜像
# docker load -i hello-world.tar
f22b99068db9: Loading layer [==================================================>] 15.36kB/15.36kB
Loaded image: hello-world:latest
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 2 months ago 13.3kB
容器命令
docker run新建并启动一个容器
# docker run -d --name mytomcat -p8888:8080 -it 4e7840b49fad
选项:
-
-d:表示后台运行(daemon)
-
–name:为容器指定一个名字
-
-p:端口映射,宿主机端口为8888映射到docker内端口8080
-
-i:交互方式运行
-
-t:启动一个伪终端
docker ps查看启动的容器
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
611cdea15ce1 4e7840b49fad "catalina.sh run" 4 minutes ago Up 4 minutes 0.0.0.0:8888->8080/tcp mytomcat
选项:
-
-a:列出所有的容器(包括正在运行的和已停止运行的)
-
-l:显示最近创建的容器
-
-n:显示最近创建的n个容器
-
-q:只显示容器ID
docker stop停止容器
# docker stop 611cdea15ce1
docker start启动容器
# docker start 611cdea15ce1
docker restart重启容器
# docker restart 611cdea15ce1
docker kill强制停止容器
# docker kill 611cdea15ce1
docker rm删除容器
# docker rm 611cdea15ce1
docker logs查看容器的日志
# docker logs 6e6fa4a51f8d
docker top查看容器内的进程
# docker top 6e6fa4a51f8d
docker inspect查看容器的详细信息
# docker inspect 6e6fa4a51f8d
docker exec进入到运行中的容器
# docker exec -it 6e6fa4a51f8d /bin/bash
docker attach进入到运行中的容器
进入容器后退出会导致容器终止,而docker exec不会。
# docker attach --sig-proxy=false a4d400f2ea80
docker cp从容器中拷贝文件到宿主机
# docker cp 6e6fa4a51f8d:/usr/local/tomcat/BUILDING.txt
docker export导出容器
# docker export a4d400f2ea80 > tomcat.tar.gz
docker import导入容器
# docker import hello-world.tar morris/hello-world:v1
sha256:ee76e27a8fbd9441ace8e3e3e3e30a04c2c227bbc42a65239b956d579b336386
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
morris/hello-world v1 ee76e27a8fbd 6 seconds ago 13.3kB
hello-world latest d1165f221234 2 months ago 13.3kB
创建镜像的方式
-
docker commit:通过容器创建镜像。
-
docker build:通过dockerfile创建。
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
578aa8e58724 d1165f221234 "/hello" 6 minutes ago Exited (0) 6 minutes ago thirsty_khorana
a4d400f2ea80 c43a65faae57 "catalina.sh run" 13 hours ago Exited (130) 13 hours ago mytomcat
# docker commit -m "my hello world" -a "morris" 578aa8e58724 morris/hello:v2
sha256:eb9df978d042e15f97aff7a53003e8277938f428d0dabb5bc6af8c2cc18edf5c
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
morris/hello v2 eb9df978d042 3 seconds ago 13.3kB
morris/hello-world v1 ee76e27a8fbd 4 minutes ago 13.3kB
hello-world latest d1165f221234 2 months ago 13.3kB