Docker(12)- docker run 命令详解
如果你还想从头学起 Docker,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1870863.html
作用
创建一个新的容器并运行一个命令
语法格式
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 备注:其实跟 docker create 一样的语法格式,只不过可以运行容器甚至进入容器内部
- COMMAND :需要在容器内执行的命令
options 说明
option | 作用 |
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 启动容器后,为容器分配一个命令行,通常与 -i 同时使用 |
-v | 目录映射,容器目录挂载到宿主机目录,格式: <host目录>:<容器目录> |
-d |
守护进程,后台运行该容器
|
-p | 指定端口映射,格式:主机(宿主)端口:容器端口 |
-P | 随机端口映射,容器内部端口随机映射到主机的端口 |
--name "nginx-lb" | 容器名字 |
-m, --memory bytes | 设置容器使用内存最大值 |
-h, --hostname string | 指定容器的 host name |
--dns 8.8.8.8 | 指定容器 dns 服务器 |
-e username="ritchie" | 设置环境变量 |
备注:其实还有好多 options,但是目前还没用到,要用的时候再写吧
实际栗子
栗子一
使用镜像 tomcat:7 ,容器命名为 tomcat77
docker run --name tomcat7 tomcat:7
这样运行,会直接将容器运行日志打印出来,所以一般都需要加 -d,否则无法继续敲其他命令
docker ps 看看容器
其实打印的日志就是 catalina.sh run 命令运行之后的日志
栗子二
- 使用镜像 tomcat:7
- 以后台模式启动一个容器
- 容器名字自定义为 tomcat7
docker run -d --name tomcat7 tomcat:7
创建容器之后还能执行其他命令,这样方便很多
栗子三
- 使用镜像 tomcat:7
- 以后台模式启动一个容器
- 将容器的 8080 端口映射到主机的随机端口
- 容器名字自定义为 tomcat9999
docker run -d -P --name tomcat9999 tomcat:7
栗子四
- 使用镜像 tomcat:7
- 以后台模式启动一个容器
- 将容器的 8080 端口映射到主机的 9999 端口
- 容器名字自定义为 tomcat7
docker run -d -p 9999:8080 --name tomcat7 tomcat:7
可以看到 PORTS 一列,主机的 9999 端口指向了容器的 8888 端口
栗子五
- 使用镜像 tomcat:7
- 以后台模式启动一个容器
- 将容器的 8080 端口映射到主机的 9999 端口
- 容器名字自定义为 tomcat7
- 主机的目录 /usr/local/tomcat/webapps 映射到容器的 /usr/local/tomcat/webapps
- 以后直接在主机的 webapps 目录上传 war 包,就能在浏览器访问对应的项目
docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
栗子六
- 使用镜像 tomcat:7
- 以后台模式启动一个容器
- 将容器的 8080 端口映射到主机的 111.20.72.43:8888 端口
- 容器名字自定义为 tomcat77
- 主机的目录 /usr/local/tomcat/webapp 映射到容器 /usr/local/tomcat/webapps
- 启动容器后,在容器内执行 bash 命令
- 注意:这里不加 -it 的话,容器是无法再启动的,加上才能启动容器并执行 bash 命令
docker run -d -p 111.20.72.43: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
不加 bash的执行结果
加 bash的执行结果
顺利进入容器的 CLI 界面,此时再去运行服务也是可以的
为什么 docker run 结尾要加 bash 命令?
- 当启动服务后,挂载的目录是无法进行 CURD 操作的,但若在容器内关闭服务会退出容器的 CLI 界面
- 所以若需要 CURD 挂载目录的话,操作完后再手动开启服务
Docker(12)- docker run 命令详解的更多相关文章
- [转帖]Docker学习之Dockerfile命令详解
Docker学习之Dockerfile命令详解 https://it.baiked.com/system/docker/2436.html 图挺好的 前言 之前,制作镜像的伪姿势搭建已经见过了,今天介 ...
- Docker中的Dockerfile命令详解FROM RUN COPY ADD ENTRYPOINT...
Dockerfile指令 这些建议旨在帮助您创建高效且可维护的Dockerfile. FROM FROM指令的Dockerfile引用 尽可能使用当前的官方图像作为图像的基础.我们推荐Alpine图像 ...
- [转]Docker(三):Dockerfile 命令详解
本文转自:https://blog.csdn.net/ityouknow/article/details/79600406 上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dock ...
- Docker(三):Dockerfile 命令详解
上一篇文章Docker(二):Dockerfile 使用介绍介绍了 Dockerfile 的使用,这篇文章我们来继续了解 Dockerfile ,学习 Dockerfile 各种命令的使用. Dock ...
- Docker(六):Dockerfile命令详解
Dockerfile 指令详解 1 FROM 指定基础镜像 FROM 指令用于指定其后构建新镜像所使用的基础镜像.FROM 指令必是 Dockerfile 文件中的首条命令,启动构建流程后,Docke ...
- Docker run命令详解 转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Usage: doc ...
- Docker基础教程(命令详解)
# docker --help Usage: docker [OPTIONS] COMMAND [arg...] docker daemon [ --help | ... ] docker [ -h ...
- linux中docker容器安装vi命令详解
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...
- Docker命令详解
Docker命令详解 最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...
随机推荐
- 图像分辨率 像素 大小 LCD显示 为OLED屏增加GUI支持
1. 根据一张标准图片的分辨率,结合每个像素的大小,可以计算得到这张图片的大小(字节数) 补充点:bmp格式的图片有24色或者32色.(其一个像素点可能占用24bits或者32bits) 至于图片怎 ...
- What number should I guess next ?——由《鹰蛋》一题引发的思考
What number should I guess next ? 这篇文章的灵感来源于最近技术部的团建与著名的DP优化<鹰蛋>.记得在一个月前,查到鹰蛋的题解前,我在与同学讨论时,一直试 ...
- c++中 预编译头文件PCH
转载:https://blog.csdn.net/lovemysea/article/details/74858430 一.预编译头文件使用经验: 如果预编译头文件被正确使用时,它确实大大提高我们编程 ...
- C# Dropdownlist设置选择项
(1) dropdowslist.selectedIndex=索引值(数字); (2) dropdownlist.Items.findbyvalue(你的值).selected=true (3 ...
- ansible-初始playbook安装nginx
1. ansible-初始playbook安装nginx 1) 创建一个ansible存放路径 1 [root@test-1 scripts]# mkdir -p /ansible/nginx/{co ...
- http_parser
最近读了 http_parser 的源码,记录下. 有意思的地方: 1) 协议解析可以不完全解析完,但是当前 parser 会记录解析状态,这样可以继续解析 2) 协议解析首要还是要了解协议 ...
- turtle库元素语法分析
一.turtle原理理解: turtle库是Python中一个有趣的图形绘制函数库.原名(海龟),我们想象一只海龟,位于显示器上窗体的正中心,在画布上游走,它游走的轨迹就形成了绘制的图形. 对于小海龟 ...
- 【Linux编译环境的搭建】Linux都没有,怎么学Linux编程?
本文准备从0开始,一步步搭建一套属于自己的多节点Linux系统环境,这将是后续学Linux.用Linux.Linux环境编程.应用和项目部署.工具实验等一系列学习和实践的基石,希望对小伙伴们有帮助. ...
- 集训DP复习整理
DP复习 集训%你赛2:测绘(审题DP) 经过2000+个小时的努力终于把这道题做出来的蒟蒻通 分析: 这道题我一直没做出来的原因就是因为我太蒟了题面看不懂,题面读懂了,其实不是特别难. 题目翻译: ...
- linux(centos8):基于java13安装rocketmq-4.7.1(解决jdk不兼容的报错)
一,Rocketmq是什么? 1, RocketMQ是一个队列模型的消息中间件,具有高性能.高可靠.高实时.分布式特点 相比kafka,rocketmq的实时性更强 2,官方网站: http://ro ...