Docker打包微服务

白昼怎懂夜的黑 提交于 2019-12-08 23:59:08

关于Docker,知其然还要知其所以然,这里安利一篇很不错的文章。

       10张图带你深入理解Docker容器和镜像

阅读完以上文章,基本上对Docker有了一个比较好的认识,下面来开始我们的应用。

先声明一下,这里用的版本为1.12.6


一、安装与配置

安装就直接通过yum来安装吧

配置主要要配置阿里的镜像加速器,因为dockerHub为国外的网站,在pull镜像的时候会比较慢

下面官方配置的方法是一个坑,应该是比较久版本的docker的配置方法,我用该方法配置后,无法启动docker,还原后

也无法启动docker,最后重装docker才解决问题。

阿里镜像加速器配置的官方文档

sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart

1.10以上版本正确的配置方法如下

建立/etc/docker文件夹,创建daemon.json文件,其中的内容为:

{
  "registry-mirrors": ["专属加速器地址"]
}
专属加速器地址需要登录阿里云,在后台设置中获取。

 容器Hub服务控制台

二、启动Docker

安装完后,使用systemctl start docker命令启动docker

可以通过docker run hello-world验证是否安装成功

相关问题

1、 如果报错类似daemon没有在host上运行的话

启动docker-daemon,使用nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &命令2、如果报错shim error: docker-runc not installed on system

可能是加速器配置错误

可以先看看systemctl start docker是否报错,查看具体报错信息systemctl status docker.service -l

如果docker服务都起不来,那么很可能就是加速器配置的问题


三、打包微服务

先通过maven打包我们的微服务

在微服务jar包所在的目录创建Dockerfile,举例如下

FROM java:8

VOLUME /home/container

ADD myService-center-1.0.0.jar center.jar
RUN bash -c 'touch /center.jar'

EXPOSE 1111

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/center.jar","--spring.profiles.active=dev"]
创建镜像,docker build -t 仓库名称/镜像名称:标签 .

注意最后的.不能省略,它表示Dockerfile的位置在当前目录
镜像创建成功的控制台显示


这个时候就能看到我们创建的镜像了

通过docker run -d -p 1111:1111 service/center:1.0.0命令,即可运行微服务容器

这个时候我们就能看到我们的容器启动了

通过docker logs 容器id 命令可以查看容器的日志

微服务启动完毕,就可以通过浏览器访问了


四、卸载Docker

yum安装的docker的和普通的yum卸载一样

通过yum list installed docker 命令查找安装的docker

通过yum -y remove 安装过的包 卸载所有的docker

最后删除 /var/lib/docker下的所有文件


相关问题

 如果在删除/var/lib/docker时报如下错误


需要先umount相应的资源

通过以下命令,查看所有挂载的资源


       通过以下命令进行umount

       

       然后再删除/var/lib/docker下的文件就可以了


五、通过阿里云管理镜像

进入阿里云后台,可以创建自己的镜像仓库,为了便于提交镜像,选择本地仓库。

登录阿里云docker仓库


 告诉阿里云docker仓库镜像的imageId


 将镜像传到阿里云docker仓库中


         然后就可以在其他服务器中将我们上传的镜像pull回来

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!