# 1. 环境准备
**1. 确认安装了docker插件**

**2. 配置docker服务可以被外部连接**
```
vim /usr/lib/systemd/system/docker.service
```
添加`-H tcp://0.0.0.0:2375`配置2375端口可连接

> 注意:2375端口的防火墙配置
**3. 配置idea连接docker**
`在File–> Settings–>Build,Execution,Deployment中找到Docker`

4. 创建springboot测试项目,并修改pom文件添加docker相关插件

# 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镜像已经发布

8. 根据镜像运行container

找到镜像,右创建容器

配置暴露的端口和容器名称

运行成功

# 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

3. run
上一步勾选了直接运行容器


- 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源文件
- 服务升级
- 笔记
- 镜像