docker容器的生命周期管理常用命令

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: docker容器的生命周期管理常用命令

容器的生命周期管理命令

docker create :创建一个新的容器但不启动它
docker create nginx
docker run :创建一个新的容器并运行一个命令
常用选项:
常用选项
1. --add-host:容器中hosts文件添加 host:ip 映射记录
2. -a, --attach:附加到 STDIN, STDOUT 或 STDERR
3. --cidfile:将容器id写入到指定文件
4. -d, --detach:后台运行容器并打印容器id
5. --detach-keys:指定将容器切回后台的按键,默认:CTRL-p+CTRL-q
6. --disable-content-trust:跳过镜像验证,默认为TRUE
7. --domainname:设置容器网络服务域名
8. --entrypoint:覆盖镜像默认程序入口
9. -e, --env:设置环境变量
10. --env-file:从文件中读取环境变量
11. --expose:暴露一个或多个端口
12. --group-add:为容器用户添加更多用户组
13. -h, --hostname string:设置主机名
14. --init 在容器内运行init,转发信号并捕获进程
15. -i, --interactive:保持标准输入设备处于打开状态
16. -l, --label list:设置容器元数据labels
17. --label-file list:从文件中读取以换行作为分隔符的label
18. --link:添加一个其他容器的链接,及修改当容器的/etc/hosts文件
19. --log-driver:容器日志驱动,none、local、json-file、syslog、journald、gelf、fluentd、 awslogs、splunk、etwlogs、gcplogs、logentries
20. --log-opt:日志驱动选项
21. --mount:将文件系统挂载到容器,与 -v 类似
22. --name:指定容器名称
23. --privileged:授予容器超级权限
24. -p, --publish:发布容器端口到主机端口
25. -P, --publish-all:将所有暴露的端口发布到主机随机端口
26. --pull:运行前拉取图像,(always|missing|never),默认 missing
27. --pids-limit:限制容器中pid个数
28. --read-only :将容器跟文件系统装载为只读
29. --restart:当容器退出时的重启策略,默认为no
30. --rm:当容器退出时,自动删除容器
31. --sig-proxy:将接收到的信号代理到进程(默认为true)
32. --stop-signal:停止容器的信号(默认为“SIGTERM”)
33. --stop-timeout:容器停止超时时长,单位s
34. --tmpfs:装载tmpfs目录
35. -t, --tty:分配一个伪终端设备
36. -u, --user: 用户名或用户ID (格式: [:])
37. -v, --volume :绑定数据卷
38. --volume-driver:容器的可选卷驱动程序
39. --volumes-from:从指定的容器装载数据卷
40. -w, --workdir:容器内的工作目录
系统 :
系统
1. --cap-add:添加linux功能
2. --cap-drop:删除linux功能
3. --isolation:指定容器的隔离技术
    docker run -t -i --rm --mount type=bind,src=/tmp/data,dst=/data ubuntu bash
    docker run -dit --rm --tmpfs /run1:rw,noexec,nosuid,size=65536k ubuntu bash
    docker run --cap-add=ALL --cap-drop=MKNOD ...
    docker run --cap-add=SYS_ADMIN ...
    docker run --cap-add=CAP_SYS_ADMIN ...
    linux系统:只支持default,即linux命名空间隔离技术
    windows系统:
    default:表示使用docker守护进程配置的选项,否则默认使用process选项
4. --platform:设置平台,如果服务器支持多个平台
5. --runtime:用于此容器使用的运行时
6. --security-opt:通过指定--security opt标志来覆盖每个容器的默认标签方案
7. --shm-size:设置/dev/shm设备的大小,/dev/shm是一个基于内存的临时文件系统
8. --storage-opt:容器的存储驱动程序选项
9. --sysctl:设置系统参数,默认 map[]
10. --ulimit:设置Ulimit选项,默认[]
网络:
网络
1. --ip:ip4地址
2. --ip6:ip6地址
3. --dns 设置自定义dns服务器,将修改容器中 /etc/resolv.conf 文件
4. --dns-option:设置DNS选项,将修改容器中 /etc/resolv.conf 文件
5. --dns-search:设置自定义DNS搜索域名,将修改容器中 /etc/resolv.conf 文件
6. --link-local-ip:设置一个或多个容器的以太网设备的链路本地IPv4/IPv6地址
7. --mac-address:容器Mac地址
8. --network:将容器加入到指定网络
9. --network-alias:为容器添加网络范围的别名
健康检查:
健康检查
1. --health-cmd:健康检查命令
2. --health-interval:健康检查频率(ms|s|m|h),默认0s
3. --health-retries:健康检查重试次数,连续失败指定次数则判断为不健康
4. --health-start-period:设置启动容器的初始化时间,在此期间的健康检查不作为参考依据,
(ms|s|m|h),默认0s
5. --health-timeout:每一次检查超时时间(ms|s|m|h),默认0s
6. --no-healthcheck:禁用健康检查
// docker run --rm --health-cmd "curl http://localhost" --health-interval 2s --
health-retries 5 --health-start-period 10s --health-timeout 1s nginx
命名空间选项:
命名空间选项
1. --cgroup-parent:容器的可选父cgroup
2. --cgroupns:要使用的Cgroup命名空间(host|private)
    host:在Docker主机的cgroup命名空间中运行容器
    private:在容器的私有cgroup命名空间中运行容器
    "":使用配置的cgroup命名空间
3. --pid:pid 命名空间使用,默认使用命名空间隔离,指定host则使用主机pid命名空间
4. --userns:用户与组命名空间,默认为主机模式,在daemon.json中配置后,默认隔离,可通过指
定host为主机模式
    process:命名空间隔离
    hyperv:基于Hyper-V 管理程序基于分区的隔离
5. --uts:uts命名空间,默认隔离,可指定host为主机模式
docker start/stop/restart
docker start :启动一个或多个已经被停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]
// docker start nginx
docker stop :停止一个运行中的容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
// docker stop nginx
docker restart :重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]
// docker restart nginx
docker kill :杀掉一个运行中的容器
docker kill :杀掉一个运行中的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
-s :向容器发送一个信号
// docker kill -s KILL nginx
// docker kill -s TERM nginx

如果容器终止时的状态对用户而言很重要,用户可能会想要了解docker kill 和docker stop之间的区别:

1.docker kill 的行为和标准的kill 命令行程序并不相同。

       (1).kill 程序的默认工作方式是向指定的进程发送 TERM信号(即信号值为15)。这个信号表示程序应该被终止,但是不要强迫程序终止。当这个信号被处理时,大多数程序将执行某种清理工作,但是该程序也可以执行其他操作,包括忽略该信号

       (2).docker kill 对正在运行的程序使用的是KILL信号,这使得该进程没办法处理终止过程。这就意味着一 些诸如包含运行进程ID之类的文件可能会残留在文件系统中。根据应该用程序管理状态的能力,如果再次启动容器,这可能会也可能不会造成问题。

2.docker stop 命令则像kill 命令那样工作,发送的是一个TERM型号。

docker rm :删除一个或多个容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。
docker pause/unpause
docker pause :暂停容器中所有的进程。
docker unpause :恢复容器中所有的进程。
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]
目录
相关文章
|
17天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
156 77
|
25天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
3天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
28 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
9天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
29 3
实战~如何组织一个多容器项目docker-compose
|
14天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
75 24
|
3天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
16 4
|
16天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
94 6
|
18天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
60 3
|
25天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
64 7
|
25天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
32 5