# 1. 环境准备
**1. 确认安装了docker插件**
![](https://img.kancloud.cn/41/77/4177dde3874e56b7c143f219d0d30481_1032x367.png)
**2. 配置docker服务可以被外部连接**
```
vim /usr/lib/systemd/system/docker.service
```
添加`-H tcp://0.0.0.0:2375`配置2375端口可连接
![](https://img.kancloud.cn/4e/4d/4e4dcda63af95359fcffd0b5140e9d46_1170x455.png)
> 注意:2375端口的防火墙配置
**3. 配置idea连接docker**
`在File–> Settings–>Build,Execution,Deployment中找到Docker`
![](https://img.kancloud.cn/94/70/9470b66329aad1b237a63d464651e90c_1000x713.png)
4. 创建springboot测试项目,并修改pom文件添加docker相关插件
![](https://img.kancloud.cn/73/7c/737c81fbfe631b18bc8ddbd108b2d688_1136x464.png)
# 2. 利用maven打包镜像
~~~
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上。也就是说,
用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名,这里是我们的项目名-->
<imageName>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://192.168.56.10:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar包所在的路径 此处配置的即对应项目中target目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>*.jar</include>
</resource>
</resources>
</configuration>
</plugin>
~~~
5. 添加Dock而file文件,resource目录下,上一步指定
> 这里添加的jar包是路径是上一步配置好的 <resource> 中的target和dictionary
~~~
FROM java:8
EXPOSE 8080
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar springboot-docker.jar
RUN bash -c 'touch /springboot-docker.jar'
ENTRYPOINT ["java","-jar","/springboot-docker.jar"]
~~~
6. 打包生成镜像
pom文件已经配置,package时会进行镜像build
7. 如下图 docker镜像已经发布
![](https://img.kancloud.cn/72/f5/72f544e64fea1ed3f71e1c24b8dcd65e_848x100.png)
8. 根据镜像运行container
![](https://img.kancloud.cn/98/26/9826624abcf8520a497bf7c48bcd07cc_437x205.png)
找到镜像,右创建容器
![](https://img.kancloud.cn/26/01/26018cf9303f7e39a9db8b79378c39a4_598x281.png)
配置暴露的端口和容器名称
![](https://img.kancloud.cn/29/cb/29cbc897202012d1e940f48176f3e119_638x530.png)
运行成功
![](https://img.kancloud.cn/7b/4b/7b4b79e6208cc99cfc1fb003ba4af740_667x141.png)
# 3. 利用configuration打包镜像
1. Dockerfile放在项目根路径下
~~~
FROM java:8
EXPOSE 8080
VOLUME /tmp:/tmp
ADD target/springboot-docker-0.0.1-SNAPSHOT.jar /springboot-docker.jar
RUN bash -c 'touch /springboot-docker.jar'
ENTRYPOINT ["java","-jar","/springboot-docker.jar"]
~~~
2. Edit Configuration
这里可以动态指定tag
![](https://img.kancloud.cn/d9/01/d90115e195eb372a179f5b2a82094567_1094x692.png)
3. run
上一步勾选了直接运行容器
![](https://img.kancloud.cn/65/e6/65e6af072523aac98743cfe49f557e79_902x322.png)
![](https://img.kancloud.cn/32/78/327809dedf58e30db98b087efef2d3f5_1881x272.png)
- docker
- docker安装
- 数据持久化
- 镜像管理
- Dockerfile
- 镜像的分层
- add copy
- 构建实例
- 镜像的导入导出
- 清理构建空间
- 配置阿里云加速器
- docker网络模型
- 本地仓库
- registry
- harbor
- IDEA部署docker
- 软件安装
- 安装es
- 安装MongoDB
- 安装rabbitmq
- 安装redis
- 安装nacos
- 安装mysql
- Minio
- 镜像中心
- kubernetes
- 1. 安装k8s
- 2.主要组件
- 3.污点
- 4.pod
- 5.控制器
- 6.网络
- 7.探针
- 8.安装Dashbord
- 9.secret
- 9.serviceAccount
- 10.service
- 资源清单
- kube-proxy
- flannel源文件
- 服务升级
- 笔记
- 镜像