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构建镜像并进行分布式部署

docker部署springboot

jenkins构建docker镜像

Docker构建镜像过于缓慢解决-----Docker构建服务之部署和备份jekyll网站

Docker部署Rstudio Server【四】:订制自己的个性化镜像