跳到主要内容

Docker 命令


Docker 容器命令

1.初始化容器

(1) 启动交互式容器

新建并启动一个交互式容器

docker run -it --name 容器名称 镜像名称:标签 /bin/bash
  • --name:指定容器名称

  • -i:交互式操作,保持标准输入打开(interactive)

  • -t:分配一个伪终端(tty)(启动交互式容器)

  • -p:指定端口映射(publish)

  • -P:随机端口映射(publish all)

参数说明信息
-p hostPort:containerPort端口映射 -p 8080:80
-p ip:hostPort:containerPort配置监听地址 -p 127.0.0.1:8080:80
-p ip::containerPort随机分配端口 -p 127.0.0.1::80
-p hostPort:containerPort:udp指定协议 -p 8080:80:tcp
-p 81:80 -p 443:443指定多个端口映射
  • 镜像名称:标签:指定使用的镜像及其标签(版本),如果不指定标签,默认使用 latest 标签

  • /bin/bash:指定容器启动后执行的命令

(2) 启动守护式容器

大部分场景下,容器都是以守护式运行的方式启动的:

docker run -d --name 容器名称 镜像名称:标签
  • -d:后台运行容器(detached)并返回容器ID(启动守护模式容器)
信息

⚠️ 注意:Docker 容器后台运行,必须有一个前台进程,否则容器会自动退出。容器运行的命令如果不是那些一直挂起的命令(如:top,tail),就会自动退出。


2.查看容器进程

docker ps -a
  • -a:显示所有容器(包括未运行的容器)

3.退出当前容器

  • run 进入的容器,直接 exit 退出,容器停止运行
  • run 进入的容器,Ctrl + P + Q 退出,容器继续运行

4.重启指定容器

docker start 容器名称或ID

5.停止指定容器

docker stop 容器名称或ID

强行停止指定容器

docker kill 容器名称或ID

6.删除停止容器

docker rm 容器名称或ID

PS:不能删除正在运行的容器,删除前需要先停止容器,否则会返回错误信息

Error response from daemon: You cannot remove a running container. Stop the container before attempting removal or use -f

强制删除:

docker rm -f 容器名称或ID

7.运行中容器 ‼️

(1) 查看容器日志

docker logs 容器名称或ID

(2) 查看容器内进程

docker top 容器名称或ID

(3) 查看容器内部细节

docker inspect 容器名称或ID

(4) 进入运行中容器

docker exec -it 容器名称或ID /bin/bash
  • exec 进入的容器,直接 exit 退出,容器继续运行

重新进入容器:

docker attach 容器名称或ID
信息

exec 和 attach 的区别:

  • exec:进入容器后,打开一个新的终端会话,容器内原有的终端会话不受影响,exit 后,容器内原有的终端会话继续运行
  • attach:进入容器后,连接到容器内原有的终端会话,容器内原有的终端会话会被占用,exit 后,容器内原有的终端会话也会退出

PS:推荐使用 exec 进入容器,因为 exec 进入容器后,容器内原有的终端会话不受影响,exit 后,容器内原有的终端会话继续运行


8.容器文件操作

(1) 复制文件到容器

docker cp 本地文件路径 容器名称或ID:容器内路径

(2) 复制文件从容器到本地

docker cp 容器名称或ID:容器内路径 本地文件路径

9.导出和导入容器

(1) 导出容器

导出指定的容器为一个 tar 包,这个 tar 包包含了容器的文件系统内容,但不包含容器的元数据(如:环境变量、端口映射等)(镜像)

docker export -o 导出文件名.tar 容器名称或ID

(2) 导入容器

将导出的 tar 包导入为一个新的镜像(镜像)

docker import 导入文件名.tar 新镜像名称:标签