Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)

作者: hangge 发布时间: 2019-09-09 浏览: 2620 次 编辑

一、镜像管理

1,下载镜像

我们使用 docker pull 命令从 Docker Hub 上下载指定镜像:

hello-world 是 Docker 官方提供的一个镜像,通常用来验证 Docker 是否安装成。

1
docker pull helle-world


2,搜索镜像

使用 docker search 命令可以搜索 Docker Hub 中的镜像。

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


3,查看已下载的镜像

使用 docker images 命令可以查看所有已下载到本地的镜像。

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)

4,删除镜像

使用 docker rmi 命令可以删除下载到本地的镜像。

注意:删除镜像前要先删除对应的容器(不管是正在运行,还是已经停止的)

1
docker rmi hello-world

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


二、运行容器

1,基本运行

(1)镜像可以通过 docker run 命令运行。

1
docker run hello-world

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


2,运行时带上参数 

(1)docker run 命令支持带上各种参数运行容器。下面以运行一个 Apache 服务为例。

-d:表示以后台方式启动容器。
-p 80:8080:表示启动后将容器的 80 端口映射到 host 的 8080 端口。

1
docker run -d -p 8080:80 httpd


(2)默认情况下,容器启动后 docker 会自动为容器分配名字。使用 --name 可以人工指定容器的名字。

1
docker run --name "hangge_http_server" -d httpd

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


3,让容器能够自动重启

(1)如果希望容器(比如服务类容器)因某种错误而停止运行时,能够自动重启,在启动时设置 --restart 就可以到达效果。

注意: --restart 策略只在启动进程正常退出或发生错误时有效。如果容器时因为执行 docker stop 或者 docker kill 退出,则不会自动重启。

1
docker run --restart=always httpd


(2)--restart=always 表示无论容器因何种原因退出(包括正常退出),都立即重启。如果改成 --restart=on-failure:3,则表示如果启动进程退出代码非 0,则重启容器,且最多重启 3 次。

1
docker run --restart=on-failure:3 httpd


4,查看正在运行的容器

(1)使用 docker ps 或者 docker container ls 命令可以显示哪些容器正在运行(两个命令效果一样):

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


(2)前面两个命令只能查看当前正在运行的容器,使用 docker ps -a 或者 docker container ls -a 命令则会显示所有状态的容器(包括已经退出的)

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


三、进入容器

1,使用 exec 命令进入容器

    容器运行后,我们可能需要进到容器里去做一些工作,比如查看日志、调试、启动其它进程等。有两种方法进入容器,它们分别是 attach 和 exec

  • attach 直接进入容器启动命令的终端,不会启动新的进程。

  • exec 则是在容器中打开新的终端,并且可以启动新的进程。

(1)首先我们启动一个 Apache Server 容器。

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)

(2)我们使用 docker exec -it 以交互模式打开 pseudo-TTY,执行 bash,其结果就是打开了一个 bash 终端。

1
docker exec -it 0d0553632642 bash


(3)进入到容器中,容器的 hostname 就是其“短ID”。

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)

(4)执行 exit 则可退出容器,回到 docker host

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


2,使用 run -it 在容器启动后直接进入

下面我们使用 docker run -it 在 busybox 容器启动后就直接进入。进入后通过 wget 验证容器访问 internet 的能力。

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)

 

四、停止、重启、删除容器

1,停止运行的容器

(1)通过 docker stop 可以停止运行的容器,下面根据容器名字来停止。

1
docker stop hangge_http_server


(2)如果想要快速停止容器,可以使用 docker kill 命令。

1
docker kill hangge_http_server


2,启动停止的容器

使用 docker start 可以重新启动处于停止状态的容器,并且保留容器的第一次启动时的所有参数。

1
docker start hangge_http_server


3,重启容器

docker restart 可以重启容器,其作用就是依次执行 docker stop 和 docker start

1
docker restart hangge_http_server


4,暂停/恢复容器

(1)如果只是希望容器暂停工作一段时间,比如对容器的文件系统大打个快照,或者 docker host 需要使用 CPU,这是可以执行 docker pause 将其暂停。

1
docker pause hangge_http_server

原文:Docker - 常用命令汇总1(镜像管理、容器运行、停止、进入等)


(2)处于暂停状态的容器不会占用 CPU,直到通过 docker unpause 恢复运行。

1
docker unpause hangge_http_server


5,删除容器

(1)使用 docker 一段时间后,host 上可能会有大量已经退出了的容器。我们可以使用 docker rm 命令删除。下面通过容器的短 id 删除:

1
docker rm 9d3d9622aafa


(2)docker rm 一次可以指定多个容器删除。

1
docker rm 9d3d9622aafa e12cc2a63fd3


(3)如果希望批量删除所有已经退出的容器,可以执行如下命令。

1
docker rm -v $(docker ps -aq -f status=exited)


原文链接:https://www.hangge.com/blog/cache/detail_2402.html