07. 容器操作
容器是docker中的核心概念,许多和容器相关的命令都可以省略container
参数。
1. 开启容器⚓
创建容器(选项巨多):
docker [container] create [OPTIONS] IMAGE [COMMAND] [ARG...]
开启容器:
docker [container] start [OPTIONS] CONTAINER [CONTAINER...]
还有删除容器、删除退出的容器、暂停/还原容器等。
docker run
相当于先执行docker [container] create命令,再执行docker [container] start命令。当使用该命令创建并启动时,Docker在后台运行的标准操作包括:
-
检查本地是否存在指定的镜像,不存在就从公有仓库下载;
-
利用镜像创建一个容器,并启动该容器;
-
分配一个文件系统给容器,并在只读的镜像层外面挂载一层可读写层;
-
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;
-
从网桥的地址池配置一个IP地址给容器;
-
执行用户指定的应用程序;
-
执行完毕后容器被自动终止。
docker run -itd centos /bin/bash
-it
是个重要的选项,其中,-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。
-d
则是让容器在后台运行。此时,与容器通信的方法有两个:
- docker attach
# Attach local standard input, output, and error streams to a running container
docker attach [OPTIONS] CONTAINER
- docker exec(推荐方式)
# Run a command in a running container
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Options:
-d, --detach Detached mode: run command in the background
--detach-keys string Override the key sequence for detaching a container
-e, --env list Set environment variables
-i, --interactive Keep STDIN open even if not attached
--privileged Give extended privileges to the command
-t, --tty Allocate a pseudo-TTY
-u, --user string Username or UID (format: <name|uid>[:<group|gid>])
-w, --workdir string Working directory inside the container
2. 导出与导入容器⚓
导出容器(不论运行与否):
# Export a container's filesystem as a tar archive
Usage: docker export [OPTIONS] CONTAINER
Options:
-o, --output string Write to a tar file, instead of STDOUT
导入容器:
# Import the contents from a tarball to create a filesystem image
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
Options:
-c, --change list Apply Dockerfile instruction to the created image(在导人的同时执行对容器进行修改的Dockerfile指令)
-m, --message string Set commit message for imported image
导入与载入:
既可以使用docker [image] load命令来导入镜像存储文件到本地镜像库,也可以使用docker [container] import命令来导入一个容器快照到本地镜像库。 这两者的区别在于: 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积更大。 此外,从容器快照文件导人时可以重新指定标签等元数据信息。
3. 查看容器⚓
3.1 查看容器详情⚓
查看容器的具体信息,返回json数据。
# Display detailed information on one or more containers
docker container inspect [OPTIONS] CONTAINER [CONTAINER...]
3.2 查看容器内进程⚓
# Display the running processes of a container
docker container top CONTAINER [ps OPTIONS]
3.3 查看统计信息⚓
CPU、内存、存储、网络等使用情况。
# Display a live stream of container(s) resource usage statistics
# 显示实时容器(s)资源使用情况统计信息流
docker container stats [OPTIONS] [CONTAINER...]
Options:
-a, --all Show all containers (default shows just running)
--format string Pretty-print images using a Go template
--no-stream Disable streaming stats and only pull the first result
--no-trunc Do not truncate output
4. 其它命令⚓
复制文件:
# Copy files/folders between a container and the local filesystem
docker container cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
更新配置:
更新容器的一些运行时配置,主要是一些资源限制份额。
docker container update [OPTIONS] CONTAINER [CONTAINER...]