Docker 入门:容器



容器看着像机器,实际是进程,是一个运行时程序。

要操作一个 Docker 容器,只需要执行 docker container 命令。 可以通过 help 查看



Docker 入门:容器_python

run 运行容器

基础使用:

docker container run nginx

Docker 会到本地区查找有没有叫做 nginx 的镜像(镜像这篇暂不涉及)。如果没有,会在 Docker Hub 官方仓库当中下载。

Docker 每条命令里都有可选参数。以下是 run 经常使用的一些可选参数:

​-p / --publish​

开放端口。比如开放容器的 80 端口和 22 端口,分别映射到宿主机的 8000 和 5000 端口。nginx 必须要开放端口才可以使用。

docker container -p 8000:80 -p 5000:22 nginx

​-d / --detach​

后台运行,打印容器 ID。

没有后台运行时,会显示 nginx 的日志:



Docker 入门:容器_python_02

后台运行以后,打印容器 ID 后可以接着做其他的事:



Docker 入门:容器_nginx_03

​--name​

给容器取一个名字,更容易记得住。 默认容器名称是随机生成的。

​-e / --env​

给容器添加环境变量。

​-i, --interactive​

开启交互式模式。

​-t / --tty​

开启 tty。

-i 和 -t 经常组合在一起使用,可以在容器中输入 shell 命令。 比如通过 Docker 安装一个 python 环境,然后在命令行运行 python:

docker container run -it python:3.7-alpine python

运行以后,可以直接获取 python 终端进行调试:



Docker 入门:容器_docker_04

使用交互式进入已经在运行的容器:

docker container exec -it container_id

​--rm​

退出容器时自动删除容器,通常用在调试过程中。

​-v / --volume​

添加 volume 数据卷(数据卷是宿主机和容器之间的数据通道,这里暂不讨论。)

logs 日志查看

查看某个容器运行的日志。

docker container logs container_id

stop 命令

停止容器运行

docker container stop container_id(name)

rm 命令

删除容器

docker container rm container_id(name)

ls 查看容器

基础使用:

docker container ls

可以选择的参数:

​-a / --all​

展示所有的容器,包含运行的和没有运行的。

​-q / --quiet​

只显示 IDs。

​-f / --filter​

筛选容器。

列举所有退出的容器,并显示 ID:

docker container ls -aq -f "status=exited"



删除所有退出的容器:

docker container rm $(docker container ls -aq -f "status=exited") --force

更多文章关注公号:雨哥写 python