Docker安装部署(镜像构建)-执行Dockerfile
Posted 每天译点晓知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker安装部署(镜像构建)-执行Dockerfile相关的知识,希望对你有一定的参考价值。
下载deb包的方式:
https://pan.baidu.com/s/1kVkVyuFA71Hn_DXPR-m0pA 提取码:in17
安装:
sudo dpkg -i docker-ce_18.03.1-ce-0-ubuntu_amd64.deb
测试:
docker -v
sudo docker run hello-world
装好了Docker的环境之后,这时候可以借助Jenkins打包>>>
https://blog.csdn.net/yxd179/article/details/82910414
(这里给个例子:一般前后端分离项目,这里就有2个服务,若引入Elasticsearch作数据检索,当然也包括存储,这里就还有1个es服务,注:也可将后端服务跟es服务作为一个去打包。)
将容器保存镜像>>>
在容器里修改nginx或者其他服务的配置文件:
进入容器sudo docker exec -it yx /bin/sh
修改Nginx配置文件vi /etc/nginx/sites-available/default
这里以v2作为一个版本去生成v3,若有容器在运行,则先删除容器sudo docker rm -f ask后sudo docker run --name ask -itd ask:v2 /bin/bash
保存镜像sudo docker save -o /home/user/ask.v2.tar.gz ask:v2
生成镜像压缩包:echo 'create yx image'
sudo docker rmi -f yx:v3
sudo docker commit yx yx:v3
echo 'save yx image'
sudo rm -rf /home/user/yx.tar.gz
sudo docker save -o /home/user/yx.v3.tar.gz yx:v3
(注:镜像---硬盘,容器---内存,其中可能涉及到一些数据文件在容器中的拷贝cp或者跨服务器scp到相应目录即可。)
运行镜像>>>
bash 脚本:sudo docker rm -f yx
sudo docker rmi -f yx:v3
docker load -i ~/yx.v3.tar.gz
sudo kill -9 $(ps -ef|grep Elasticsearch|gawk '$0 !~/grep/ print $2' |tr -s '\\n' ' ')
开启各种服务:......
(echo 'reload nginx ...'
sudo service nginx restart
sudo nginx -s reload
echo 'start web success')
(echo 'es starting...'
sudo -u user /home/user/ask/bin/elasticsearch-5.5.1/bin/elasticsearch -d
echo 'es starting success')
(sudo -u user nohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m - Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /home/user/yx/jar/yx-web-1.0- SNAPSHOT.jar >/dev/null 2>&1 &)
这样只需要服务器上装了Docker的环境,运行打好的镜像压缩包,即可部署Success......
(注:可封装sh然后bash)
Dockerfile方式:
首先,创建jar包所在文件路径:
进入目录 cd /home/user/jars
创建文件夹 mkdir dboper
编译jar包,将target下的jar,上传至dboper目录,效果如图所示,
然后,在同目录下,创建Dockerfile文件以及restart.sh跟bootstrap.yml,这里小编通过cp方式处理,
准备工作已完成,接下来开始构建镜像文件,根据当前同目录下的Dockerfile执行,
构建镜像 docker build -t reverse-images -f ./Dockerfile .
查看上述基于jdk1.8打的镜像,
最后,我们基于上述的镜像去启动容器,
docker run -d --name manage-reverse --restart always --network=host --privileged --log-driver json-file --log-opt max-size=100m --log-opt max-file=3 -v /home/gwi/jars/dboper:/usr/jars/ -v /home/logs:/home/logs -v /etc/localtime:/etc/localtime reverse-images
Ok,Now,我们来看一下实时启动日志,
docker logs -f --tail 100 manage-reverse
关闭服务,执行 docker stop manage-reverse,重启服务,执行 docker restart manage-reverse,若是通过jenkins去打包-可根据重启脚本sh去自定义。
以上是关于Docker安装部署(镜像构建)-执行Dockerfile的主要内容,如果未能解决你的问题,请参考以下文章
企业运维实战--最全Docker学习笔记1.Docker简介安装部署镜像构建Dockerfile详解镜像构建镜像优化本地私有仓库搭建
6月26号实训报告——使用docker构建镜像并进行分布式部署