docker 常用命令和参数

docker常用命令和参数

  • docker run
  • 快捷查询
  • 命令具体说明
    • 在运行的容器中执行命令
    • 连接到正在运行的容器
    • 将容器保存为镜像
  • docker服务启动、重启、关闭

docker run

参数 含义
-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: 备注

docker服务启动、重启、关闭

启动 systemctl start docker
守护进程重启 systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker

你可能感兴趣的:(docker,docker,容器,运维)