Docker打包微服务 Bertha 。 2022-05-31 01:10 228阅读 0赞 关于Docker,知其然还要知其所以然,这里安利一篇很不错的文章。 # [10张图带你深入理解Docker容器和镜像][10_Docker] # 阅读完以上文章,基本上对Docker有了一个比较好的认识,下面来开始我们的应用。 先声明一下,这里用的版本为1.12.6 一、安装与配置 安装就直接通过yum来安装吧 配置主要要配置阿里的镜像加速器,因为dockerHub为国外的网站,在pull镜像的时候会比较慢 下面官方配置的方法是一个坑,应该是比较久版本的docker的配置方法,我用该方法配置后,无法启动docker,还原后 也无法启动docker,最后重装docker才解决问题。 [阿里镜像加速器配置的官方文档][Link 1] 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服务控制台][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的位置在当前目录 镜像创建成功的控制台显示 ![SouthEast][] 这个时候就能看到我们创建的镜像了 ![SouthEast 1][] 通过docker run -d -p 1111:1111 service/center:1.0.0命令,即可运行微服务容器 这个时候我们就能看到我们的容器启动了 ![SouthEast 2][] 通过docker logs 容器id 命令可以查看容器的日志 ![SouthEast 3][] 微服务启动完毕,就可以通过浏览器访问了 ![SouthEast 4][] 四、卸载Docker yum安装的docker的和普通的yum卸载一样 通过yum list installed docker 命令查找安装的docker 通过yum -y remove 安装过的包 卸载所有的docker 最后删除 /var/lib/docker下的所有文件 相关问题 如果在删除/var/lib/docker时报如下错误 ![SouthEast 5][] 需要先umount相应的资源 通过以下命令,查看所有挂载的资源 ![SouthEast 6][] 通过以下命令进行umount ![SouthEast 7][] 然后再删除/var/lib/docker下的文件就可以了 五、通过阿里云管理镜像 进入阿里云后台,可以创建自己的镜像仓库,为了便于提交镜像,选择本地仓库。 登录阿里云docker仓库 ![SouthEast 8][] 告诉阿里云docker仓库镜像的imageId ![SouthEast 9][] 将镜像传到阿里云docker仓库中 ![SouthEast 10][] 然后就可以在其他服务器中将我们上传的镜像pull回来 ![SouthEast 11][] [10_Docker]: http://dockone.io/article/783 [Link 1]: https://yq.aliyun.com/articles/29941 [Hub]: https://cr.console.aliyun.com/?spm=a2c4e.11153959.blogcont29941.12.699e6d2fPcQVqP [SouthEast]: /images/20220531/b077023092584c558f087b01f6f428a4.png [SouthEast 1]: /images/20220531/040d96b3ef644df99df2e554cae8c93f.png [SouthEast 2]: /images/20220531/9be2ced327934f6e8f92e177b3dc0749.png [SouthEast 3]: /images/20220531/f9aa5cdc765f4512871180bf22c68dcf.png [SouthEast 4]: /images/20220531/59b9cd486b924b6a8e056f40bceaa12e.png [SouthEast 5]: /images/20220531/cb63cbe4dc334d949eff67e755976416.png [SouthEast 6]: /images/20220531/bb2a1668859d4358ad6e9a6f96cc0520.png [SouthEast 7]: /images/20220531/2e08c8c351e34748ac2fbbf95b476371.png [SouthEast 8]: /images/20220531/8744bc9872cb4b7eafa4d18851897be4.png [SouthEast 9]: /images/20220531/2c45c3e4516a4de1bfd9c8e17ad6a46e.png [SouthEast 10]: /images/20220531/af3436f7ee4f43059d5a26c4df07e96e.png [SouthEast 11]: /images/20220531/e828be80bc084284b6405b13a78b50c2.png
还没有评论,来说两句吧...