Docker 进入容器、删除、导出、导入及查看容器(六)

Docker 进入容器、删除、导出、导入及查看容器(六)

Scroll Down

1. 进入容器

当容器后台启动以后,就需要进入容器进行操作。进入的操作有attach和exec

1.1 docker attach

docker attach [OPTIONS] CONTAINER

       --detach-keys[=[]]      # 指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;
       --no-stdin=true|false   # 是否关闭标准输入,默认是保持打开;
       --sig-proxy=true|false  # 是否代理收到的系统信号给应用进程,默认为true。

注意:docker attach命令推出采用的快捷键ctrl+d退出,会造成容器的停止运行!

image.png

但这样不是我们想看到的,因此,需要在进入时加上--sig-proxy=false 参数。这是因为在没要加上参数时,先点击ctrl+p 然后ctrl+q 相当于退出时不会传递关闭容器的指令。

docker attach --sig-proxy=false dongzao

image.png

但是,在实际使用并不推荐使用 docker attach!推荐使用 docker exec!

1.2 docker exec

进入容器及退出建议使用 docker exec!

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

      -d, --detach               # 分离模式:在后台运行命令
          --detach-keys string   # 覆盖分离容器的键序列
      -e, --env list             # 设置环境变量
      -i, --interactive          # 即使没有连接,也要保持STDIN打开
          --privileged           # 授予命令扩展权限
      -t, --tty                  # 分配一个伪TTY
      -u, --user string          # 用户名或用户标识(格式:<名称标识>[:<群组标识>])
      -w, --workdir string       # 容器内的工作目录

下面操作,退出后容器依然在运行!

image.png

2. 删除容器

可以使用docker rm 删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

      -f, --force     # 通过 SIGKILL 信号强制删除一个运行中的容器
      -l, --link      # 移除容器间的网络连接,而非容器本身
      -v, --volumes   # 删除与容器关联的卷

image.png

默认情况下,dockerrm命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器。

如果要直接删除一个运行中的容器,可以添加-f参数。Docker会先发送SIGKIL信号给容器,终止其中的应用,之后强行删除。

3. 导出导入容器

当需要将一个容器移动到另一个容器,就需要导出和导入了。

3.1 导出容器

导出使用 docker export

docker export <Container_ID> > <local_file_name>

       -o, --output string      # 将输入内容写到文件

image.png

注意:命令中的 ">"符号!

3.2 导入容器

导入使用docker import

docker import <仓库名>:<TAG>

       --change , -c		# 应用 Dockerfile指令应用于创建的镜像
       --message , -m		# 为导入的镜像设置提交消息
       --platform	        # 设置平台,如果服务器支持多平台

image.png

4. 查看容器

4.1 查看容器详情

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

       -f, --format string   # 使用给定的Go模板格式化输出
       -s, --size            # 显示总的文件大小。
           --type string     # 为指定类型返回JSON。

image.png

4.2 查看容器内进程

docker top [OPTIONS] CONTAINER [ps OPTIONS]

image.png

4.3 查看统计信息

docker stats [OPTIONS] [CONTAINER...]

       --all , -a		# 显示所有容器(默认显示为正在运行)
       --format		        # 使用Go模板打印漂亮的图像
       --no-stream		# 禁用流统计信息,仅获取第一个结果
       --no-trunc		# 不要截断输出

image.png

5. 其他容器命令

5.1 复制文件

这里的复制文件是指用于容器与主机之间的数据复制。

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-      # 容器复制到主机
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH      # 主机复制到容器

       --archive , -a		# 存档模式(复制所有uid / gid信息)
       --follow-link , -L	# 始终遵循SRC_PATH中的符号链接

从容器复制到主机

image.png

从主机复制到容器
image.png
image.png

5.2 查看变更

docker diff CONTAINER   # 检查容器文件系统上文件或目录的更改

image.png

5.3 查看端口映射

docker port CONTAINER [PRIVATE_PORT[/PROTO]]   #列出端口映射或容器的特定映射

5.4 更新配置

更新一个或多个容器的配置

docker update [OPTIONS] CONTAINER [CONTAINER...]

       --blkio-weight		# 块IO(相对权重),介于10到1000之间,或者为0禁用(默认为0)
       --cpu-period		# 限制CPU CFS(完全公平的调度程序)期限
       --cpu-quota		# 限制CPU CFS(完全公平的调度程序)配额
       --cpu-rt-period		# 将CPU实时时间限制为微秒
       --cpu-rt-runtime		# 将CPU实时运行时间限制为微秒
       --cpu-shares , -c	# CPU份额(相对重量)
       --cpus		        # CPU数量
       --cpuset-cpus		# 允许执行的CPU(0-3,0,1)
       --cpuset-mems		# 允许执行的MEM(0-3,0,1)
       --kernel-memory		# 内核内存限制
       --memory , -m		# 内存限制
       --memory-reservation	# 内存软限制
       --memory-swap		# 交换限制等于内存加交换:“-1”以启用无限交换
       --pids-limit		# Tune容器pids限制(设置-1表示无限制)
       --restart		# 容器退出时重新启动策略以应用

64036179_p0_master1200.jpg