本文所整理的命令基于Docker version 19.03.3 Manage containers
附上一张docker event state,点击图片查看大图
attach
连接到正在运行中的容器,观察容器的运行状况
docker attach或docker container attach
语法:docker attach [OPTIONS] CONTAINER
Options:
--detach-keys string:覆盖容器后台运行的一些参数信息
--no-stdin:不要附加STDIN
--sig-proxy:代理所有接收到的进程信号
commit
从容器创建新的镜像
docker commit或docker container commit
语法:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
Options:
-a, --author string:指定镜像作者
-c, --change list:使用Dockerfile指令创建镜像
-m, --message string:提交信息
-p, --pause:在commit期间,暂停容器
例:docker commit -a "whsir <wuhao@whsir.com>" -m "myweb" -p CONTAINER
cp
宿主机与容器之间数据拷贝
docker cp或docker container cp
语法:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Options:
-a, --archive:存档模式(复制所有uid/gid信息)
-L, --follow-link:始终遵循源目标中的符号链接
例:
将宿主机/root/123文件拷贝到容器/home目录下,假设容器NAMES为web
docker cp /root/123 web:/home
将容器中/home/123文件拷贝到宿主机/home目录下,假设容器NAMES为web
docker cp web:/home/123 /home
将宿主机中/home/www目录拷贝到容器/home目录下,假设容器NAMES为web
docker cp /home/www/ web:/home
create
只创建容器,不运行
docker create或docker container create
与docker run选项相似,一个是创建后立即运行,一个是只创建不运行
语法:docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
Options:
--add-host list:添加自定义主机到IP映射(host:ip),例:--add-host=www.whsir.com:192.168.1.100
-a, --attach list:指定标准输入输出内容,可选STDIN,STDOUT和STDERR
--blkio-weight uint16:磁盘IO权重,在10~1000之间,或0禁用(默认0)
--blkio-weight-device list:指定某个设备的IO权重,例:--blkio-weight-device "/dev/sdb:50"
--cap-add list:添加linux功能,请查看https://linux.die.net/man/7/capabilities
--cap-drop list:删除linux功能
--cgroup-parent string:设置容器的控制组
--cidfile string:在指定文件写入容器ID
--cpu-period int:用于限制cpu
--cpu-quota int:用于限制cpu
--cpu-rt-period int:限制cpu周期,单位微秒
--cpu-rt-runtime int:限制cpu运行时间,单位微秒
-c, --cpu-shares int:在cpu共享场景中设置容器cpu权重
--cpus decimal:cpu数量
--cpuset-cpus string:允许执行的cpu(0-3, 0,1)
--cpuset-mems string: 同--cpuset-cpus string参数,用作于NUMA架构的cpu(0-3, 0,1)
--device list:将主机设备添加到容器中
--device-cgroup-rule list:将宿主机设备添加到cgroup规则列表中
--device-read-bps list:限制某个设备的读取速率bps,例:--device-read-bps /dev/sdb:50KB
--device-read-iops list:限制某个设备的读iops
--device-write-bps list:限制某个设备的写入速率bps
--device-write-iops list:限制某个设备的写iops
--disable-content-trust:忽略镜像校验
--dns list:设置容器的dns服务器,默认和宿主机一致
--dns-option list:设置DNS选项
--dns-search list:指定容器DNS搜索域名
--domainname string:设置容器NIS域
--entrypoint string:覆盖image默认入口点
-e, --env list:设置环境变量
--env-file list:读取环境变量文件
--expose list:指定容器暴露的端口或端口范围
--gpus gpu-request:添加GPU到容器
--group-add list:添加容器到组
--health-cmd string:运行健康检查命令
--health-interval duration:运行健康检查时间间隔(ms|s|m|h) (default 0s)
--health-retries int:需要报告健康检查失败次数
--health-start-period duration:健康检查重启倒计时,容器初始化的开始时间 (ms|s|m|h)
--health-timeout duration:健康检查运行的超时时间(ms|s|m|h)
--help:打印使用
-h, --hostname string:指定容器中的hostname(主机名)
--init:在转发信号和获取进程的容器中运行init
-i, --interactive:以交互模式运行容器,通常和-t选项一同使用
--ip string:IPv4 地址 (e.g., 172.30.100.104)
--ip6 string:IPv6 地址 (e.g., 2001:db8::33)
--ipc string:要使用的IPC模式
--isolation string:容器隔离
--kernel-memory bytes:限制内核的内存使用
-l, --label list:在容器上设置元数据
--label-file list:导入元数据至该容器
--link list:添加链接到另一个容器
--link-local-ip list:设置容器本地IPv4/IPv6链路地址
--log-driver string:指定日志驱动的类型
--log-opt list:日志驱动选项
--mac-address string:设置容器的mac地址
-m, --memory bytes:设置容器内存最大使用值
--memory-reservation bytes:软件限制内存使用,宿主机内存空间时,可以根据设置超出一定的限制
--memory-swap bytes:交换内存大小限制
--memory-swappiness int:调整容器交换内存, (0 to 100)设置为0时不允许交换
--mount mount:将文件系统挂载附加到容器
--name string:为容器分配一个名称,方便后续通过该名称管理容器
--network network:容器网络设置
--network-alias list:设置容器在网络上的别名
--no-healthcheck:禁止健康检查
--oom-kill-disable:禁用omm kill
--oom-score-adj int:调整主机OOM首选项(-1000 to 1000)
--pid string:设置容器pid命名空间
--pids-limit int:限制容器创建的最大进程数(设置-1表示无限制)
--privileged:授予容器的扩展权限
-p, --publish list:指定端口映射(例:-p 81:80,表示将容器中80端口映射到宿主机的81端口)
-P, --publish-all:随机端口映射
--read-only:容器的根系统文件挂载只读
--restart string:指定容器停止后的重启策略,默认容器退出后不重启
--rm:在容器退出时自动删除它
--runtime string:指定一个--runtime string容器
--security-opt list:安全选项
--shm-size bytes:设置/dev/shm大小
--sig-proxy:代理接收到的进程信号(默认 true)
--stop-signal string:停止带有信号的容器(默认 "SIGTERM")
--stop-timeout int:容器调用命令超时(秒)停止容器
--storage-opt list:容器的存储驱动程序选项
--sysctl map:sysctl选项
--tmpfs list:挂载tmpfs目录
-t, --tty:为容器分配一个伪tty终端,通常和-i选项一同使用
--ulimit ulimit:ulimit选项
-u, --user string:指定容器用户 (format: <name|uid>[:<group|gid>])
--userns string:使用用户命名空间
--uts string:使用UTS命名空间
-v, --volume list:绑定挂载卷,容器与宿主机进行磁盘目录映射
--volume-driver string:容器的可选卷驱动程序
--volumes-from list:从指定容器挂载
-w, --workdir string:指定容器的工作目录
diff
检查容器文件结构修改
docker diff或docker container diff
语法:docker diff CONTAINER
例:假设容器NAMES为web
docker diff web
exec
在运行的容器中执行命令
docker exec或docker container exec
语法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
Options:
-d, --detach:分离模式,在后台运行命令
--detach-keys string:覆盖容器后台运行的一些参数信息
-e, --env list:设置环境变量
-i, --interactive:交互模式,通常和-t选项一同使用
--privileged:为命令提供一些扩展权限
-t, --tty:分配一个伪tty终端,通常和-i选项一同使用
-u, --user string:指定容器用户 (format: <name|uid>[:<group|gid>])
-w, --workdir string:指定容器的工作目录
例:进入到容器中,假设容器NAMES为web
docker exec -it web /bin/bash
export
导出容器
docker export或docker container export
语法:docker export [OPTIONS] CONTAINER
Options:
-o, --output string:输入内容写到文件
例:
docker export CONTAINER ID > NAME.tar
docker export -o NAME.tar CONTAINER ID
inspect
查看容器或镜像的元数据
docker inspect或docker container inspect
语法:docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Options:
-f, --format string:指定go模板格式化输出
-s, --size:显示总文件大小
--type string:返回指定类型的JSON
例:
查看一个名称为web的容器
docker inspect web
查看容器的内部IP,假设容器NAMES为web
docker inspect --format='{{.NetworkSettings.IPAddress}}' web
docker inspect -f {{.Mounts}} web
kill
杀掉运行中的容器
docker kill或docker container kill
语法:docker kill [OPTIONS] CONTAINER [CONTAINER...]
Options:
-s, --signal string:向容器发送一个信号(默认 "KILL")
logs
获取容器日志
docker logs或docker container logs
语法:docker logs [OPTIONS] CONTAINER
Options:
--details:显示更多的信息
-f, --follow:跟踪日志输出,类似tail -f
--since string:显示某个时间段后的日志,例:docker logs --since="2019-12-12T13:23:37" CONTAINER
--tail string:从日志末尾显示行数,默认all
-t, --timestamps:显示时间戳
--until string:显示某个时间段前的日志
ls/ps/list
查看容器相关信息
docker container ls或docker ps或docker container ps或docker container list
语法:
docker container ls [OPTIONS]
docker ps [OPTIONS]
Options:
-a, --all:显示所有容器,包括没有运行的容器
-f, --filter filter:根据条件过滤显示的内容
--format string:使用go模板打印容器输出
-n, --last int:显示最近创建的n个容器,例:docker ps -n2
-l, --latest:显示最近创建的容器
--no-trunc:不截断输出显示完整的容器ID
-q, --quiet:只显示CONTAINER ID
-s, --size:显示总文件大小
默认字段信息解释:
CONTAINER ID:容器ID,具有唯一性
IMAGE:基于哪个镜像启动的容器
COMMAND:容器运行的命令
CREATED:容器创建的时间
STATUS:当前容器状态
PORTS:当前容器所映射的端口
NAMES:容器名字
pause/unpause
暂停/恢复容器中所有进程
docker pause或docker container pause
docker unpause或docker container unpause
语法:
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]
port
列出容器端口映射
docker port或docker container port
语法:docker port CONTAINER [PRIVATE_PORT[/PROTO]]
例:查看容器端口映射,假设容器NAMES为web
docker port web
prune
删除所有已停止的容器
docker container prune
语法:docker container prune [OPTIONS]
Options:
--filter filter:筛选过滤,('until=<timestamp>')
-f, --force:直接删除,不提示确认选项
例:docker container prune -f
rename
容器重命名
docker rename或docker container rename
语法:docker rename CONTAINER NEW_NAME
例:docker rename CONTAINER ID web2
start/stop/restart
启动/停止/重启容器
docker start/stop/restart或docker container start/stop/restart
语法:docker start [OPTIONS] CONTAINER [CONTAINER...]
Options:
-a, --attach:附加STDOUT/STDERR和转发信号
--detach-keys string:覆盖用于分离容器的键序列
-i, --interactive:附加STDIN到容器
语法:docker stop [OPTIONS] CONTAINER [CONTAINER...]
Options:
-t, --time int:达到设定的时间,默认10秒,会继续发送SIGKILL的信号强行kill掉进程
语法:docker restart [OPTIONS] CONTAINER [CONTAINER...]
例:
docker start CONTAINER或docker start NAMES
docker stop CONTAINER或docker start NAMES
docker restart CONTAINER或docker start NAMES
rm
删除一个或多个容器
docker rm或docker container rm
语法:Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
Options:
-f, --force:强制删除正在运行的容器(uses SIGKILL)
-l, --link:删除指定的链接
-v, --volumes:删除与容器关联的卷
例:强制删除容器,假设容器NAMES是web1和web2
docker rm -f web1 web2
run
立即运行容器
docker run或docker container run
语法:docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
Options:
--add-host list:添加自定义主机到IP映射(host:ip),例:--add-host=www.whsir.com:192.168.1.100
-a, --attach list:指定标准输入输出内容,可选STDIN,STDOUT和STDERR
--blkio-weight uint16:磁盘IO权重,在10~1000之间,或0禁用(默认0)
--blkio-weight-device list:指定某个设备的IO权重,例:--blkio-weight-device "/dev/sdb:50"
--cap-add list:添加linux功能,请查看https://linux.die.net/man/7/capabilities
--cap-drop list:删除linux功能
--cgroup-parent string:设置容器的控制组
--cidfile string:在指定文件写入容器ID
--cpu-period int:用于限制cpu
--cpu-quota int:用于限制cpu
--cpu-rt-period int:限制cpu周期,单位微秒
--cpu-rt-runtime int:限制cpu运行时间,单位微秒
-c, --cpu-shares int:在cpu共享场景中设置容器cpu权重
--cpus decimal:cpu数量
--cpuset-cpus string:允许执行的cpu(0-3, 0,1)
--cpuset-mems string: 同--cpuset-cpus string参数,用作于NUMA架构的cpu(0-3, 0,1)
-d, --detach:容器运行在前台还是后台,使用-d表示运行于后台并返回容器ID
--detach-keys string:覆盖用于分离容器的键序列
--device list:将主机设备添加到容器中
--device-cgroup-rule list:将宿主机设备添加到cgroup规则列表中
--device-read-bps list:限制某个设备的读取速率bps,例:--device-read-bps /dev/sdb:50KB
--device-read-iops list:限制某个设备的读iops
--device-write-bps list:限制某个设备的写入速率bps
--device-write-iops list:限制某个设备的写iops
--disable-content-trust:忽略镜像校验
--dns list:设置容器的dns服务器,默认和宿主机一致
--dns-option list:设置DNS选项
--dns-search list:指定容器DNS搜索域名
--domainname string:设置容器NIS域
--entrypoint string:覆盖image默认入口点
-e, --env list:设置环境变量
--env-file list:读取环境变量文件
--expose list:指定容器暴露的端口或端口范围
--gpus gpu-request:添加GPU到容器
--group-add list:添加容器到组
--health-cmd string:运行健康检查命令
--health-interval duration:运行健康检查时间间隔(ms|s|m|h) (default 0s)
--health-retries int:需要报告健康检查失败次数
--health-start-period duration:健康检查重启倒计时,容器初始化的开始时间 (ms|s|m|h)
--health-timeout duration:健康检查运行的超时时间(ms|s|m|h)
--help:打印使用
-h, --hostname string:指定容器中的hostname(主机名)
--init:在转发信号和获取进程的容器中运行init
-i, --interactive:以交互模式运行容器,通常和-t选项一同使用
--ip string:IPv4 地址 (e.g., 172.30.100.104)
--ip6 string:IPv6 地址 (e.g., 2001:db8::33)
--ipc string:要使用的IPC模式
--isolation string:容器隔离
--kernel-memory bytes:限制内核的内存使用
-l, --label list:在容器上设置元数据
--label-file list:导入元数据至该容器
--link list:添加链接到另一个容器
--link-local-ip list:设置容器本地IPv4/IPv6链路地址
--log-driver string:指定日志驱动的类型
--log-opt list:日志驱动选项
--mac-address string:设置容器的mac地址
-m, --memory bytes:设置容器内存最大使用值
--memory-reservation bytes:软件限制内存使用,宿主机内存空间时,可以根据设置超出一定的限制
--memory-swap bytes:交换内存大小限制
--memory-swappiness int:调整容器交换内存, (0 to 100)设置为0时不允许交换
--mount mount:将文件系统挂载附加到容器
--name string:为容器分配一个名称,方便后续通过该名称管理容器
--network network:容器网络设置
--network-alias list:设置容器在网络上的别名
--no-healthcheck:禁止健康检查
--oom-kill-disable:禁用omm kill
--oom-score-adj int:调整主机OOM首选项(-1000 to 1000)
--pid string:设置容器pid命名空间
--pids-limit int:限制容器创建的最大进程数(设置-1表示无限制)
--privileged:授予容器的扩展权限
-p, --publish list:指定端口映射(例:-p 81:80,表示将容器中80端口映射到宿主机的81端口)
-P, --publish-all:随机端口映射
--read-only:容器的根系统文件挂载只读
--restart string:指定容器停止后的重启策略,默认容器退出后不重启
--rm:在容器退出时自动删除它
--runtime string:指定一个--runtime string容器
--security-opt list:安全选项
--shm-size bytes:设置/dev/shm大小
--sig-proxy:代理接收到的进程信号(默认 true)
--stop-signal string:停止带有信号的容器(默认 "SIGTERM")
--stop-timeout int:容器调用命令超时(秒)停止容器
--storage-opt list:容器的存储驱动程序选项
--sysctl map:sysctl选项
--tmpfs list:挂载tmpfs目录
-t, --tty:为容器分配一个伪tty终端,通常和-i选项一同使用
--ulimit ulimit:ulimit选项
-u, --user string:指定容器用户 (format: <name|uid>[:<group|gid>])
--userns string:使用用户命名空间
--uts string:使用UTS命名空间
-v, --volume list:绑定挂载卷,容器与宿主机进行磁盘目录映射
--volume-driver string:容器的可选卷驱动程序
--volumes-from list:从指定容器挂载
-w, --workdir string:指定容器的工作目录
例:启动一个nginx,并命名为web,使其保持在后台运行
docker run --name web -d nginx:latest
启动一个nginx,将百度网址解析到192.168.1.100
docker run --name web -d --add-host www.baidu.com:192.168.1.100 nginx:latest
启动一个busybox,设置其DNS地址为223.5.5.5
docker run -d --dns 223.5.5.5 busynox:latest
启动一个nginx,将容器内的80端口映射到宿主机的8081端口
docker run --name web -d -p 8081:80 nginx:latest
stats
监测容器资源的消耗
docker stats或docker container stats
语法:docker stats [OPTIONS] [CONTAINER...]
Options:
-a, --all:监测所有容器(默认显示正在运行的)
--format string:使用go模板打印图像
--no-stream:不持续监测,只提取第一个结果
--no-trunc:不截断输出
默认字段信息解释:
CONTAINER ID:容器ID
NAME:容器名称
CPU %:cpu使用情况
MEM USAGE / LIMIT:已使用的内存/最大内存
MEM %:百分比方式显示内存使用情况
NET I/O:网络I/O
BLOCK I/O:磁盘I/O
PIDS:PID号
例:监测所有正在运行的容器
docker stats
top
显示容器运行的进程
docker top或docker container top
语法:docker top CONTAINER [ps OPTIONS]
update
更新容器配置
docker update或docker container update
语法:docker update [OPTIONS] CONTAINER [CONTAINER...]
Options:
--blkio-weight uint16:磁盘IO权重,在10~1000之间,或0禁用(默认0)
--cpu-period int:用于限制cpu
--cpu-quota int:用于限制cpu
--cpu-rt-period int:限制cpu周期,单位微秒
--cpu-rt-runtime int:限制cpu运行时间,单位微秒
-c, --cpu-shares int:在cpu共享场景中设置容器cpu权重
--cpus decimal:cpu数量
--cpuset-cpus string:允许执行的cpu(0-3, 0,1)
--cpuset-mems string: 同--cpuset-cpus string参数,用作于NUMA架构的cpu(0-3, 0,1)
--kernel-memory bytes:限制内核的内存使用
-m, --memory bytes:设置容器内存最大使用值
--memory-reservation bytes:软件限制内存使用,宿主机内存空间时,可以根据设置超出一定的限制
--memory-swap bytes:交换内存大小限制
--pids-limit int:限制容器创建的最大进程数(设置-1表示无限制)
--restart string:指定容器停止后的重启策略,默认容器退出后不重启
wait
阻塞运行直到一个或多个容器停止
docker wait或docker container wait
语法:docker wait CONTAINER [CONTAINER...]
原文链接:Docker容器管理命令参数详解,转载请注明来源!