赞
踩
本文目录
1: 在win10下安装docker
docker允许在win10专业版上安装,但是很多电脑都是出厂预装的win10家庭版,这个需要破解安装,网上教程很多,如果安装出问题,此处推荐一篇博客(侵删)https://blog.csdn.net/li_chunlong/article/details/105531124。在这里提一下docker很重要的两个概念:容器和镜像。镜像是运行在容器中的,就像一个jar包运行在虚拟机上,可以把镜像类比为一个jar包,容器类比为一个虚拟机。
2: docker的最最最最常用命令
个人关于镜像和容器理解:首先通过mvn命令将springboot项目打成jar包,然后把jar包放到docker上编译,即上面的第9个命令,编译完成后就形成了一个镜像,通过docker images可以看到。然后再通过docker run命令启动这个镜像,就相当于把镜像放到了容器中进行启动。启动完成后可以通过 docker ps查看正在运行的容器。
3: 在docker上部署项目并且处理遇到的值得注意的点
让springboot项目在docker上运行,寿险需要在pom.xml文件中添加docker插件,再新建一个Dockerfile文件
pom.xml :
- <build>
- <plugins>
- <!-- Docker maven plugin -->
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>1.0.0</version>
- <configuration>
- <imageName>main-system</imageName><!--镜像名称,可自定义-->
- <dockerDirectory>src/main/docker</dockerDirectory><!--Dockerfile文件路径,可自定义-->
- <resources>
- <resource>
- <targetPath>/</targetPath>
- <directory>${project.build.directory}</directory>
- <include>${project.build.finalName}.jar</include>
- </resource>
- </resources>
- </configuration>
- </plugin>
- <!-- Docker maven plugin -->
- </plugins>
- </build>
Dockerfile :
- FROM openjdk:8-jdk-alpine
- VOLUME /tmp
- ADD main-system-1.0-SNAPSHOT.jar app.jar
- ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
以上为docker在windows上的部署。但是现在的程序大多是在windows上开发,在linux上部署。那么我们普通人部署的流程为
windows上开发-》windows上编译镜像-》windows上提交镜像-》linux上拉取镜像-》linux上运行镜像。
在windows上的编译在前面的文章中已经提到了,那么这个流程就涉及到docker的另一个重要概念,即:仓库。仓库很好理解,是存贮镜像的地方,类似于git仓库之于代码分支,maven仓库之于依赖包。像git仓库有github、coding、码云等众多托管平台一样,docker镜像仓库也有dockerhub,阿里云镜像仓库、网易镜像仓库。在下面的步骤中我们以阿里云镜像仓库为例
- D:\Work\Project\baoji-system\webapps\manage-system>docker login --username=yourname registry.cn-shanghai.aliyuncs.com
- Password:
- Login Succeeded
-
- D:\Work\Project\baoji-system\webapps\manage-system>docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- manage-system latest 291da7fabc50 About an hour ago 183MB
- openjdk 8-jdk-alpine a3562aa0b991 15 months ago 105MB
-
- D:\Work\Project\baoji-system\webapps\manage-system>docker tag a3562aa0b991 registry.cn-shanghai.aliyuncs.com/manage-system/staging:1.0.0
-
- D:\Work\Project\baoji-system\webapps\manage-system>docker push registry.cn-shanghai.aliyuncs.com/manage-system/staging:1.0.0
- The push refers to repository [registry.cn-shanghai.aliyuncs.com/manage-system/staging]
- ceaf9e1ebef5: Pushed
- 9b9b7f3d56a0: Pushed
- f1b5933fe4b5: Pushed
- 1.0.0: digest: sha256:44b3cea369c947527e266275cee85c71a81f20fc5076f6ebb5a13f19015dce71 size: 947
第四步:在linux上安装镜像,此处推荐一篇博客(侵删)https://blog.csdn.net/u014069688/article/details/100532774
第五步:拉取镜像。先登录,输入 docker pull registry.cn-shanghai.aliyuncs.com/nameSpace/depository:version-num。跟上面的一样,nameSpace是命名空间,depository是仓库名称,version-num是版本号,这里都替换成咱们自己的。替换完成后输入pull命令如果出现报错:Error response from daemon: pull access denied for xxx.xxx, repository does not exist or may require 'docker login',这里就要注意了,如果拉取出现这个问题,咱们需要配置一个阿里云加速器(第六步),如果拉取没有出现问题就略过第六步
第六步:配置阿里云加速器
- 1:到docker的安装目录中去
- cd /etc/docker/
- 2:编辑或创建docker配置文件daemon.json
- vi daemon.json
- 输入i插入字符,将以下json配置粘贴进去
- {
- "registry-mirrors": ["https://brf9xytm.mirror.aliyuncs.com"]
- }
-
- 按esc退出编辑模式,输入英文冒号: ,再输入wq保存文件
- 3:重启docker服务
- systemctl daemon-reload
- systemctl restart docker
配置重启完成后再次登录拉取就会拉取成功,如下
第七步:运行镜像,这一步在本文的上阕已经讲过了。咱们输入以下命令就可以运行成功啦。其中-p参数有讲过,-d 参数表示我们将程序运行在后台,输入后会返回一串容器id,不影响我们输入其他的命令。
到此为止,docker的三个要点 仓库、镜像、容器,以及安装和使用过程中遇到的坑,以及部署的流程,已经写的差不多了。但与docker紧密联系的另一个技术点 ,kubernetes(即 k8s集群部署),以后有精力再来更新。
文中若有错误欢迎指正....
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。