当前位置: 首页 > news >正文

涨薪技术|Docker容器操作常用命令

前面的推文我们学了Docker容器镜像知识,今天开始给大家分享Docker容器操作的常用命令,欢迎关注。Docker不管是程序员,架构师或者测试工程师都必须要掌握的一门主流技术,如果需要领取同步资料可以文末联系老师。

一、启动容器

使用start命令来启动一个已经创建的容器,语法如下:

docker start [OPTIONS] CONTAINER [CONTAINER...]

例如:

[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf7d5ab01367 chuanshi/my_tomcat:1.1 "catalina.sh run" 2 days ago Exited (143) 2 days ago sharp_morse c86203e18883 tomcat "catalina.sh run" 2 days ago Exited (143) 2 days ago evil_brown
[root@localhost ~]# docker start cf7d5ab01367

二、重启容器

使用restart命令可以重启容器,语法格式如下:

docker restart [OPTIONS] CONTAINER [CONTAINER...]

如果由于某种错误而导致容器停止运行,那么可以通过--restart标志,让Docker自动重新启动该容器,--restart标志会检查容器的退出代码,并据些来决定是否要重启容器,默认情况下Docker不会重启容器。

[root@localhost ~]# docker run --restart=always redis /bin/bash

--restart标志设置为always,无论容器退出代码是什么,Docker都会自动重启该容器。

三、创建并运行容器

除了创建容器后通过start命令来启动,也可以直接新建并启动容器。所需要的命令主要为docker[container] run,等价于先执行docker [container] create命令,再docker [container] start命令。run命令的语法格式如下:​​​​​​​

docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明: -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -P: 随机端口映射,容器内部端口随机映射到主机的端口 -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称; --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 设置环境变量; --env-file=[]: 从指定文件读入环境变量; --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; -m :设置容器使用内存最大值; --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; --link=[]: 添加链接到另一个容器; --expose=[]: 开放一个端口或一组端口; --volume , -v: 绑定一个卷
root@localhost ~]# docker run -it --name redis_v1.0 a6edd7a55846 1:C 16 Sep 2021 14:56:45.482 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 1:C 16 Sep 2021 14:56:45.482 # Redis version=6.2.5, bits=64, commit=00000000, modified=0, pid=1, just started 1:C 16 Sep 2021 14:56:45.482 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 1:M 16 Sep 2021 14:56:45.482 # You requested maxclients of 10000 requiring at least 10032 max file descriptors. 1:M 16 Sep 2021 14:56:45.482 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.

上面是交互式运行的容器(interactive container),也可以创建长期运行的容器,守护式容器(daemonized container)没有交互式传话,非常适合运行应用程序和服务,-d参数是用于将容器放在后台运行。​​​​​​​

[root@localhost ~]# docker run -d --name redis_v1.0 a6edd7a55846 924be00ba9f8bbd1b748a64ed277ac5e7f636e86d8c70e14cc4ecce895442128 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 924be00ba9f8 a6edd7a55846 "docker-entrypoint.s 8 seconds ago Up 7 seconds 6379/tcp redis_v1.0

守护式容器,并不会像上一个容器一样将主机控制台附着到新的shell传话上,而是仅仅返回一个容器的ID而已。

四、进入容器

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作,这个时候需要进入容器进行操作,推荐使用官方的attach或exec命令。

4.1 attache命令,语法:​​​​​​​

docker attach [OPTIONS] CONTAINER [root@localhost ~]# docker attach 081a787888a1

4.2 exec命令,语法​​​​​​​

docker exec [OPTIONS] CONTAINER COMMAND [ARG...] OPTIONS说明: -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 [root@localhost ~]# docker exec -it 3b93cdf44fc3 /bin/bash

五、删除容器

可以使用docker [container] rm命令来删除处于终于或退出状态的容器,命令格式为:​​​​​​​

docker rm [OPTIONS] CONTAINER [CONTAINER...] OPTIONS说明: -f :通过 SIGKILL 信号强制删除一个运行中的容器 -l :移除容器间的网络连接,而非容器本身 -v :删除与容器关联的卷 例如: [root@localhost ~]# docker rm -f 081a787888a1 删除所有已经停止的容器: docker rm $(docker ps -a -q)

六、查看容器中的进程

查看容器内进程可以使用top子命令,其语法格式如下:​​​​​​​

docker top [OPTIONS] CONTAINER [ps OPTIONS] 查看容器redis-test的进程信息 [root@localhost ~]# docker top redis-test UID PID PPID C STIME TTY TIME CMD systemd+ 4216 1215 0 16:30 pts/2 00:00:01 redis-server *:6379 查看所有运行容器的进程信息 for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done

七、查看统计信息

查看统计信息可以使用stats子命令,其语法格式如下:​​​​​​​

docker stats [OPTIONS] [CONTAINER...] Options说明: --all , -a:输出所有容器统计信息。 --format:格式化输出信息。 --no-stream:不持续输出,默认会自动更新持续实时结果。 --no-trunc:不截断输出信息。 [root@localhost ~]# docker stats redis-test CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O redis-test 0.28% 25.24 MB/3.958 GB 0.64% 2.406 kB/738 B
http://www.gsyq.cn/news/1486579.html

相关文章:

  • 别再乱开tcp_tw_recycle了!一次生产环境HTTP请求RST丢包排查实录(附sysctl配置详解)
  • S32G QuadSPI Flash驱动配置实战:从时序匹配到性能调优
  • llama.cpp更新(b9553):LLM inference in C/C++,本地和云端实现高性能大模型推理
  • 【花雕学编程】Arduino BLDC 之基于陀螺仪的机器人静态行走步态控制(ZMP稳定)
  • BGP策略实验作业
  • 浏览器市场分析 - 大屏静态布局制作
  • 天龙八部单机版GM工具终极指南:从零开始掌握游戏管理
  • 硅胶定制产业转型:精密制造如何重构供应链价值体系 - 资讯焦点
  • 巧用SCT与DMA实现MCU无原生摄像头接口的硬件级图像采集
  • Parsec VDD:如何为Windows系统创建高达16个4K虚拟显示器
  • <p>钦州市的贵金属回收店铺星罗棋布,面对琳琅满目的选择,消费者往往眼花缭乱,难以甄别孰优孰劣。为了帮助大家拨云见日,找到值得托付的合作伙伴,小编特意深入市场,精挑细选,整理出一份关于钦州市黄金、白银
  • 【RT-DETR实战】163、综合改进实验三:均衡赛道(精度速度权衡)
  • 年入30亿:泰兰尼斯与国产童鞋的「中场战事」
  • 免费解锁Grammarly Premium高级版:3分钟终极完整教程
  • 从情报工具到企业大脑:聊聊Palantir Gotham背后的数据融合与知识图谱技术
  • 威海黄金回收怎么选?本地回收六大商家实测排名,上门回收避坑指南 - 余生黄金回收
  • 从PowerPC到Cortex-M7:S32K396电机控制平台迁移与FOC实现详解
  • 5个技巧让你轻松掌握XHS-Downloader:小红书作品批量下载神器
  • 嵌入式MCU网络协议栈实现:从IP/UDP到PPP/SLIP的轻量级设计
  • KeSpeech解决方案:突破方言语音识别的数据壁垒与技术瓶颈
  • 从一物多码到状态管控:手把手教你用OMS4配置SAP物料生命周期
  • Mac Mouse Fix:让普通鼠标在macOS上获得专业级体验的完全指南
  • 更新《星露谷物语》v1.6.15!附全系列版本资源+保姆级开启联机教程+存档保存/转移教程+!
  • 2026 石家庄值得信赖的装修品牌 零增项全包老房翻新靠谱推荐 - 资讯焦点
  • Pandas分组重采样:多维时间序列的高效对齐与聚合
  • 华为 MetaERP 的 Serverless 设计哲学,核心可以用一句话概括:“业务流量潮汐式波动,算力应该像水电一样随用随取,不用不付费“。它并非简单地把函数丢到云上,而是围绕 ERP 业务特性(
  • 2026年度工业防爆变送器技术创新榜单 - 资讯焦点
  • 3D高斯泼溅技术在虚拟社交中的创新应用
  • 别再死记硬背了!手把手带你拆解SAP WM中SU(仓储单位)的完整生命周期
  • DSP代码移植:基于静态分析的SC140代码大小估算实战