一、镜像管理
1,下载镜像
我们使用 docker pull 命令从 Docker Hub 上下载指定镜像:
hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成。
docker pull helle-world
2,搜索镜像
使用 docker search 命令可以搜索 Docker Hub 中的镜像。
3,查看已下载的镜像
使用 docker images 命令可以查看所有已下载到本地的镜像。
4,删除镜像
使用 docker rmi 命令可以删除下载到本地的镜像。
注意:删除镜像前要先删除对应的容器(不管是正在运行,还是已经停止的)
1 | docker rmi hello-world |
二、运行容器
1,基本运行
(1)镜像可以通过 docker run 命令运行。
docker run hello-world
2,运行时带上参数
(1)docker run 命令支持带上各种参数运行容器。下面以运行一个 Apache 服务为例。
-d:表示以后台方式启动容器。
-p 80:8080:表示启动后将容器的 80 端口映射到 host 的 8080 端口。
docker run -d -p 8080:80 httpd
(2)默认情况下,容器启动后 docker 会自动为容器分配名字。使用 --name 可以人工指定容器的名字。
docker run --name "hangge_http_server" -d httpd
3,让容器能够自动重启
(1)如果希望容器(比如服务类容器)因某种错误而停止运行时,能够自动重启,在启动时设置 --restart 就可以到达效果。
注意: --restart 策略只在启动进程正常退出或发生错误时有效。如果容器时因为执行 docker stop 或者 docker kill 退出,则不会自动重启。
docker run --restart=always httpd
(2)--restart=always 表示无论容器因何种原因退出(包括正常退出),都立即重启。如果改成 --restart=on-failure:3,则表示如果启动进程退出代码非 0,则重启容器,且最多重
启 3 次。
docker run --restart=on-failure:3 httpd
4,查看正在运行的容器
(1)使用 docker ps 或者 docker container ls 命令可以显示哪些容器正在运行(两个命令效果一样):
(2)前面两个命令只能查看当前正在运行的容器,使用 docker ps -a 或者 docker container ls -a 命令则会显示所有状态的容器(包括已经退出的)
三、进入容器
1,使用 exec 命令进入容器
容器运行后,我们可能需要进到容器里去做一些工作,比如查看日志、调试、启动其它进程等。有两种方法进入容器,它们分别是 attach 和 exec:
attach 直接进入容器启动命令的终端,不会启动新的进程。
exec 则是在容器中打开新的终端,并且可以启动新的进程。
(1)首先我们启动一个 Apache Server 容器。
(2)我们使用 docker exec -it 以交互模式打开 pseudo-TTY,执行 bash,其结果就是打开了一个 bash 终端。
docker exec -it 0d0553632642 bash
(3)进入到容器中,容器的 hostname 就是其“短ID”。
(4)执行 exit 则可退出容器,回到 docker host。
2,使用 run -it 在容器启动后直接进入
下面我们使用 docker run -it 在 busybox 容器启动后就直接进入。进入后通过 wget 验证容器访问 internet 的能力。
四、停止、重启、删除容器
1,停止运行的容器
(1)通过 docker stop 可以停止运行的容器,下面根据容器名字来停止。
docker stop hangge_http_server
(2)如果想要快速停止容器,可以使用 docker kill 命令。
docker kill hangge_http_server
2,启动停止的容器
使用 docker start 可以重新启动处于停止状态的容器,并且保留容器的第一次启动时的所有参数。
docker start hangge_http_server
3,重启容器
docker restart 可以重启容器,其作用就是依次执行 docker stop 和 docker start。
docker restart hangge_http_server
4,暂停/恢复容器
(1)如果只是希望容器暂停工作一段时间,比如对容器的文件系统大打个快照,或者 docker host 需要使用 CPU,这是可以执行 docker pause 将其暂停。
docker pause hangge_http_server
(2)处于暂停状态的容器不会占用 CPU,直到通过 docker unpause 恢复运行。
docker pause hangge_http_server
5,删除容器
(1)使用 docker 一段时间后,host 上可能会有大量已经退出了的容器。我们可以使用 docker rm 命令删除。下面通过容器的短 id 删除:
docker rm 9d3d9622aafa
(2)docker rm 一次可以指定多个容器删除。
docker rm 9d3d9622aafa e12cc2a63fd3
(3)如果希望批量删除所有已经退出的容器,可以执行如下命令。
docker rm -v $(docker ps -aq -f status=exited)
原文链接:https://www.hangge.com/blog/cache/detail_2402.html