本文已参与「新人创作礼」活动,一起开启掘金创作之路
9 生成镜像
9.1 打包完成生成镜像
在已经安装好的docker
的linux环境中
mkdir -p /usr/local/docker/test1
把打包好的jar包导入到此文件夹下
创建文件Dockerfile,并填写相关信息
vi Dockerfile
填写相关信息
FROM java:8
VOLUME /tmp
ADD docker-demo.jar test1.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test1.jar"]
执行docker命令,其中test1
表示镜像名称
docker build -t test1 .
之后就会获取到了镜像,运行以下命令查看
docker images
启动 --rm表示容器退出时候清理容器内部的文件系统
docker run -d --rm --name test1-8081 -p 8081:8080 test1
9.2 IDEA操作Docker
9.2.1 Docker开启远程访问
#修改该Docker服务文件
vi /lib/systemd/system/docker.service
#注释ExacStart这行
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#添加
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker.service
#查看端口是否开启
netstat -nlpt #如果找不到netstat命令,可以进行安装。yum install net-tools
#直接curl看是否生效
curl http://127.0.0.1:2375/info
IDEA中查看是否有Docker路径为:File | Settings | Build, Execution, Deployment | Docker
,如果没有则需要 File | Settings | Plugins
搜索docker
找到插件 Docker integration
,点击右边的Install
按钮进行安装
9.2.2 操作Docker
打开IDEA
中File | Settings | Build, Execution, Deployment | Docker
中添加一个Docker
,选中TCP socker
配置URL地址,如果没有验证文件则不需要配置Certificates folder
,删除里面的东西即可。
配置File | Settings | Build, Execution, Deployment | Docker | Registry
,添加一个Registry
,Address填写阿里云的加速镜像即可,配置用户名和镜像密码。
点击IDEA
最下方的行工具栏-Docker,选中Docker右键启动
可以看到会出现Containers
和Images
,其中Containers
可以被启动,停止。右方有Log等容器信息。Images
可以创建一个Containers
填写上Containers name
和Bind ports
即可,也可以在Run option
里敲参数
9.3 IDEA实现自动部署
修改POM文件,添加 docker-maven-plugin
插件,
<build>
<finalName>docker-demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--镜像名称-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--基础镜像jdk8-->
<baseImage>java</baseImage>
<!--制作者本人信息-->
<maintainer>liu0meng@163.com</maintainer>
<!--切换到root目录-->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
<!--指定远程 docker 地址仓库-->
<dockerHost>http://192.168.67.69:2375</dockerHost>
<!--复制jar包到docker容器的指定目录配置-->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
运行命令
mvn install docker:build
即可完成镜像构建
在maven package
时候执行 mvn install dockerfile:build
完成镜像构建
在本插件下方添加标签
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>