简介:
通过docker镜像, docker可以在服务器上运行包含项目所需运行环境的docker容器, 在线仓库里有很多各个软件公司官方发布的镜像, 或者第三方的镜像. 如果我们需要使用docker把我们的应用程序打包成镜像, 别的机器上只要安装了docker, 就可以直接运行镜像, 而不需要再安装应用程序所需要的环境(比如 jre)了.
定制自己的镜像:
更新已有的镜像,再构建新的自定义镜像.
1. 使用docker pull 镜像名:版本从在线docker仓库中拉取一个镜像
docker pull ubuntu:18.04 使用docker images 可以看到你的镜像: (默认路径: /var/lib/docker/containers)
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
2.使用docker run -t -i -d 镜像名:版本 /bin/bash 来根据镜像运行一个容器
参数说明:
-i: 交互式操作。
-t: 终端。
-d:在后台运行(加了这个 -i -t就没用了)
ubuntu:15.10: 这是指用 ubuntu 15.10 版本镜像为基础来启动容器。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
如果在后台运行容器, 想进入容器有两种方法:
-
1. docker attach 容器ID : 退出时(exit)会停止容器
-
docker exec -it 容器ID /bin/bash :退出时(exit)不会停止容器, 一般用这个
3. 修改容器
进入这个ubuntu容器后, 你可以自己安装你的应用所需要的运行环境, 比如我要安装
mysql: sudo apt-get install mysql
JDK: sudo apt-get install openjdk-8-jdk 以上在容器内操作, 退出输入: exit
4. 将容器提交为一个新镜像:
docker commit -m="has update" -a="qds" 容器ID 镜像名:版本号
5. 用包含运行环境的新镜像, 打包我们的应用程序为docker镜像
把我们的java程序的jar包, 放在一个新建空文件夹, 然后新建一个Dockerfile文件
编辑Docerfile文件:
FROM 镜像名:版本号
MAINTAINER 作者签名
RUN 打包时运行的linux命令
COPY [--chown=
: ] <源路径1>... <目标路径>
CMD nohup java -jar xxxx.jar > xxx.log 2>&1 &```
FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。
RUN:用于执行后面跟着的命令行命令。有以下俩种格式:
shell 格式:
RUN <命令行命令>
# <命令行命令> 等同于,在终端操作的 shell 命令。
exec 格式:
RUN ["可执行文件", "参数1", "参数2"]
# 例如:
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
COPY: 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
CMD: 类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:
CMD 在docker run 时运行。
RUN 是在 docker build。
作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。
6. 根据Dockerfile文件构建包含应用程序的新镜像:docker build -t runoob/centos:6.7 .
runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
---> d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
---> Using cache
---> 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
---> Using cache
---> 0397ce2fbd0a
Step 4 : RUN useradd runoob
......
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
7. 使用 docker images 查看我们新建的镜像
8. 使用docker run -it 镜像名:版本 运行我们的镜像并访问其中的应用程序.
9. 这个镜像可以在其他安装了docker的设备上直接运行, 不需要提前装jdk等环境了.
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
-
猜你喜欢
- 1月前(三亚海棠湾君悦度假酒店)三亚海棠湾君悦酒店暑期夏令营悦趣海岛游招募中
- 1月前(四川率先建立“双定向”基层文化人才职称评审通道机制)四川率先建立“双定向”基层文化人才职称评审通道机制
- 1月前(瑞士大酒店-自助餐怎么样)瑞意心旅,以食为先 瑞士酒店开启全新"瑞士早餐计划"
- 1月前(云南南博会展馆)旅居云南馆亮相第9届南博会
- 1月前(新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!)新西兰“空降”上海:新西兰旅游局邀请你来“玩真的”!
- 1月前(“清透会呼吸”轻松拿捏春日出游氛围感)“清透会呼吸”轻松拿捏春日出游氛围感
- 1月前(中国旅游集团旗下酒店)中国旅游集团酒店控股有限公司战略投资雅阁酒店集团
- 1月前(内蒙古交通旅游图)内蒙古着力提升交通与旅游服务水平
- 1月前(泛舟诗海觅春迹什么意思)泛舟觅桃源,又一头部机构下场文旅赛道
- 1月前(海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章