深入理解 Docker Run 命令:从入门到精通
创作时间:
作者:
@小白创作中心
深入理解 Docker Run 命令:从入门到精通
引用
CSDN
1.
https://m.blog.csdn.net/myydnz/article/details/142049235
在容器化技术的领域中,Docker 无疑是最为广泛使用的工具之一。而
docker run命令则是使用 Docker 进行容器管理的核心命令之一。本文将深入探讨docker run命令的使用方法,旨在帮助初学者快速入门并掌握该命令的各种用法。
Docker Run 简介
docker run 命令用于在 Docker 中运行一个容器。它可以基于指定的镜像创建并启动一个新的容器实例。docker run 命令的基本语法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中,OPTIONS 是一系列用于配置容器运行方式的选项,IMAGE 是要运行的容器镜像,COMMAND 是在容器内部执行的命令,ARG 是传递给命令的参数。
docker run 执行流程
首先在指定镜像上创建一个可写的容器层,然后使用指定的命令(COMMAND)启动它。docker run 相当于执行了两个 API:/containers/create、/containers/(id)/start
常用参数
option | 作用 |
|---|---|
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 启动容器后,为容器分配一个命令行,通常与 -i 同时使用 |
-v | 目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录> |
-d | 守护进程,后台运行该容器 |
-p | 指定端口映射,格式:主机(宿主)端口:容器端口 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口(49153起始 49153到65535) |
-u | 以什么用户身份创建容器 |
--name | “nginx-lb” 容器名字 |
-m,--memory bytes | 设置容器使用内存最大值 |
-h, --hostname string | 指定容器的 host name |
--dns 8.8.8.8 | 指定容器 dns 服务器 |
-e username="ritchie" | 设置环境变量 |
--restart Docker | 重启后,容器是否自动重启 |
--privileged | 容器内是否使用真正的 root 权限 |
使用示例
- 使用
tomcat7镜像,创建名为tomcat_hogwarts的容器,如下:
docker run --name tomcat_hogwarts tomcat:7
这样运行,会直接将容器运行日志打印出来,所以一般都需要加 -d 参数,否则无法继续敲其他命令
- 使用
tomcat7镜像,创建名为tomcat_hogwarts01的容器,并使用-d参数,让其后台运行,命令如下:
docker run -d --name tomcat_hogwarts01 tomcat:7
运行如下图:
通过 -d 参数创建容器,不影响我们运行其他命令。
- 使用镜像
tomcat:7以后台模式启动一个容器将容器的 8080 端口映射到主机的随机端口,命令如下:
docker run -d -P --name tomcat_muller tomcat:7
- 使用镜像
tomcat:7以后台模式启动一个容器将容器的 8080 端口映射到主机的 8888 端口,命令如下:
docker run -d -p 8888:8080 --name tomcat_salah tomcat:7
可以看到 PORTS 一列,主机的 8888 端口指向了容器的 8080 端口。
- 使用镜像
tomcat:7,以后台模式启动一个容器,将容器的8080端口映射到主机127.0.0.1:8888端口容器名字自定义为tomcat77主机的目录/usr/local/tomcat/webapp映射到容器/usr/local/tomcat/webapps启动容器后,在容器内执行bash命令,命令如下:
docker run -d -p 127.0.0.1:8888:8080 -v /usr/local/webapps:/usr/local/webapps -it --name tomcat77 tomcat:7 bash
- 容器 8080 端口映射到主机的 1111 端口
-it以交互模式启动一个容器,在容器内执行bash命令
注:如果这里加了 -d 参数,则不会进入容器的 CLI 界面;如果不加 bash 命令,则会执行 tomcat 容器本身自动会执行的命令( catalina.sh run ),也会进不了 CLI 界面,因为会打印一堆运行日志
docker run -it -p 1111:8080 tomcat:7 bash
- 以 root 权限创建容器,当进入容器之后,拥有 root 权限去执行命令
# 创建容器
docker run -d --name jenkin_hogwarts --privileged=true jenkins/jenkins
# 进入容器
docker exec -it jenkin_hogwarts bash
不加 --privileged 的例子
# 创建容器
docker run -d --name jenkins_muller jenkins/jenkins
# 进入容器
docker exec -it -uroot jenkins_muller bash
注:
-uroot:是给了 root 用户身份,但并没有真正的 root 权限--privileged:真正让当前用户有了 root 权限
- 设置容器自动重启
docker run -d --name jenkins_salah --restart always jenkins/jenkins
- 退出容器
exit #容器直接退出
ctrl +P +Q #容器不停止退出 ---注意:这个很有用的操作
总结
通过本文的介绍,相信大家已经对 docker run 命令有了更深入的理解。无论是基本的交互式运行,还是高级的数据卷挂载和端口映射,docker run 都能满足我们在容器化应用开发和部署过程中的各种需求。
热门推荐
霍戈:蜀汉末年的将星,能否改变国运?
春节打卡洛阳三大自然景观:老君山、龙潭大峡谷、白云山
洛阳春节打卡必看:龙门石窟、白马寺、老君山!
慢性萎缩性胃炎患者需远离辛辣食物!
幽门螺杆菌新疗法:逆转萎缩性胃炎?
萎缩性胃炎患者必看:营养补充大揭秘!
十二生肖年龄属相对照表
等腰梯形在建筑设计中的妙用
轻松掌握梯形面积计算:从入门到精通
这3种疾病,饿一饿就好了
脑卒中后的吃饭难题:从专业康复到日常护理
吃饭太快竟会抑郁?最新研究揭示惊人真相
神仙居秋冬打卡攻略:刺激娱乐项目等你来战!
冬日打卡神仙居:捕捉最美瞬间
揭秘越王勾践避难地:神仙居的文化传奇
秋冬打卡浙江台州神仙居,美景美食全攻略!
神仙居秋日探幽:邂逅仙境般的自然奇观
道家六大呼吸法:激发人的生理潜能
一个动作就能补元气、调气血、强身健体!很适合夏天做!
双色球停售时间,你踩雷了吗?
硝酸甘油用对了能“救命”,用错了危害也很多,这点很重要
应对“顽固”血脂,新型降脂药PCSK9抑制剂新在哪?
春节去云南避寒?这份攻略请收好!
绍兴安昌古镇:最地道的江南年味在这里
到阆中古城,过最地道的中国年!
秋冬养生新选择:自制蓝莓果酱,15分钟就能搞定!
蓝莓真的能让你变美?真相揭秘!
百色秋冬摄影攻略:6大绝美景点+实用拍摄技巧
百色大王岭秋冬美景打卡指南
百色起义纪念馆:秋冬打卡圣地