Docker容器使用

122 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

在上一篇文章中我们对Docker进行了简单的操作,接下来我们对Docker容器进行详细的介绍!

Docker客户端

我们进行操作的就是Docker客户端,在命令行输入docker命令可以查看Docker客户端的所有命令选项。

docker

还可以使用 docker command --help 命令了解指定的Docker命令具体使用方法,例如:

docker stats --help

容器使用

启动容器

使用 ubuntu 镜像启动一个容器,并以命令行模式(即交互模式)进入该容器:

docker run -it ubuntu /bin/bash

参数说明:

  • -i: 交互式操作。
  • -t: 终端。
  • ubuntu: ubuntu 镜像。
  • /bin/bash: 放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

对容器操作结束后想要退出容器,输入 exit 命令回车即可

启动已停止的容器

首先查看所有容器,这里的所有容器是创建的所有容器都可以看到其信息,不论是启动状态的容器还是停止状态的容器:

docker ps -a

使用 docker start 命令启动一个已停止的容器,命令后面可以使用容器名也可以使用容器ID来指定某个容器:

docker start f6614166c88d

后台运行容器

大部分情况docker服务都是后台运行,通过-d参数指定容器后台运行模式:

docker run -itd --name ubuntu-test ubuntu

参数说明:

  • -d: 容器后台运行
  • --name: 设置容器别名

注意: 加了-d参数默认不会直接进入容器内部

停止容器

停止某个容器命令格式:

docker stop <容器ID>/<容器名>

停止的容器还可以进行重启:

docker restart <容器ID>/<容器名>

进入容器

使用-d参数时,容器自动进入后台,可以通过以下命令进入容器内部:

  • docker attach
  • docker exec

attach命令

docker attch 06824103e459

注意: 使用该命令进入容器当退出容器时会导致容器停止运行。

exec命令

docker exec -it 06824103e459 /bin/bash

注意: 使用该命令进入容器退出容器时不会导致容器停止。

导出和导入容器

导出容器

导出某个容器到本地文件可以使用 docker export 命令:

docker export 06824103e459 > test.tar

导入容器本地文件

使用docker import命令可以从容器快照文件中再导入为镜像:

cat test.tar | docker import - test/ubuntu:latest

此外还可以通过指定URL或者某个目录来导入,例如:

docker import http://example.com/exampleimage.tgz example/imagerepo

删除容器

docker rm -f <容器ID>/<容器名>

参数说明:

  • -f: 强制删除,不论容器是否在启动状态

可以使用以下命令清理所有处于终止状态的容器:

docker container prune

运行web应用

docker run -d -p 8080:80 --name word_web lamp_web

参数说明:

  • -d: 让容器在后台运行
  • -p: 设置端口映射,将容器内部80端口映射到主机8080端口(还可以使用-P参数将端口进行随机映射)
  • --name: 容器别名
  • lamp_web: 指定运行的镜像

这里的镜像是制作好的web应用镜像,所以启动该容器后就可以通过相应的IP:port去访问该web应用

查看网络端口

通过 docker ps 命令可以看到容器的端口映射,还可以使用 docker port <容器名>/<容器ID> 命令查看指定容器的某个确定端口映射到宿主机的端口号:

docker port web_wdpress
docker port efe65e22266c

查看web应用日志

当启动一个后台运行的容器时,虽然表面看不到容器在运行,但可以通过 docker logs <容器ID>/<容器名> 查看容器内部的标准输出:

docker logs web_wdpress

查看WEB应用程序容器的进程

我们还可以使用 docker top 来查看容器内部运行的进程

docker top web_wdpress