参数 | 含义 |
---|---|
-i | 表示交互式运行容器 |
-t | 表示容器启动后会进入命令行。加上-it后,容器创建后就会分配一个伪终端 |
–name | 为创建的容器命名 |
-v | 表示目录映射关系或者容器卷 使用方式为 -v 宿主机路径/卷名:容器路径:选项列表。 如果是宿主机路径,必须使用绝对路径。选项列表可以ro/rw。 可以使用多个-v做多个目录或文件映射。 注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 |
-p | –public,表示端口映射,前者是宿主机端口,后者是容器内的映射端口。 可以使用多个-p做多个端口映射 |
-d | 创建一个守护式容器在后台运行 |
–rm | 容器退出后即被删除。默认情况下,退出的容器并不会立即删除。在测试时,这个参数很有用,可以避免浪费空间。 |
–gpus | 等于all时,可以使用宿主机上所有的GPU显卡。对于docker 18之前的版本,用nvidia-docker命令来使用GPU |
实现目标 | docker命令 |
---|---|
退出容器同时终止容器运行 | exit或者ctr+d |
退出容器但是不终止容器运行 | ctr+p+q |
在容器外终止容器运行 | docker stop |
重启容器 | docker restart |
查看运行中的容器 | docker ps |
查看所有容器,包括已经停止运行的 | docker ps -a |
删除容器 | docker rm 容器名字/id |
删除镜像 | docker rmi imagename |
查看docker镜像是如何build的 我一般会用这个命令查看最后一条cmd命令,也就是docker的启动命令。 | docker history |
在运行的容器中执行命令 | docker exec [OPTIONS] CONTAINER COMMAND [ARG…] |
连接到正在运行的容器 | docker attach [OPTIONS] CONTAINER |
将容器保存为镜像 | docker commit [选项] [容器ID或容器名] [仓库名:标签] |
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
以下示例以交互式的方式进入ubuntu容器,其中bash是执行的command,打开一个交互式的shell。
docker exec -it ubuntu bash
用这种方式进入容器后用exit或者ctr+d的方式退出,并不会终止原容器的运行,但是docker attach会。
docker attach [OPTIONS] CONTAINER
要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。
官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上–sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。
保存的格式:
docker commit [选项] [容器ID或容器名] [仓库名:标签]
例子:
docker commit -a 'weikaixxxxxx' -m '导入了数据库' 9adeb5943045 mysql:v2
其中:
-a: 修改人
-m: 备注
启动 | systemctl start docker |
守护进程重启 | systemctl daemon-reload |
重启docker服务 | systemctl restart docker |
重启docker服务 | service docker restart |
关闭docker | service docker stop |
关闭docker | systemctl stop docker |