不得不说,用Docker部署项目真的太方便啦!
这里示例的是Docker部署Java项目,如果需要其他环境,创建对应的容器并配置即可。
Docker版本:1.13.1
JDK版本:openjdk version “1.8.0_111-internal”(因为镜像比较小)
Maven版本:3.5.4

一、开启2375端口

开启2375端口会引起安全漏洞。Docker提供了加密的远程管理端口2376,配合CA证书,就能提供TLS连接。

1、修改docker配置文件
在这里插入图片描述

vim /usr/lib/systemd/system/docker.service

2、修改ExecStart
修改前:

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改后:

ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \

在这里插入图片描述
3、重启Docker

# 重载systemctl
systemctl daemon-reload   
# 重启docker
systemctl restart docker  

4、防火墙开放端口或关闭防火墙(推荐前者)

# 开放2375端口
firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload
# 永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off

二、IDEA连接Docker

1、安装Docker插件,如已安装,可跳过此步骤
File -> Settings -> Plugin
在这里插入图片描述
2、连接Docker
File -> Settings -> Build,Execution,Deployment -> Docker

tcp://IP地址:2375

在这里插入图片描述
连接成功,这里会显示 Connection successful
在这里插入图片描述
在Service窗口可以看到容器和镜像
在这里插入图片描述

修改pom文件

新增配置,可根据需要自行修改

			<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!--覆盖相同标签镜像-->
                    <forceTags>true</forceTags>
                    <!-- 基础镜像 -->
                    <baseImage>docker.io/openjdk:8u111-jdk-alpine</baseImage>
                    <!-- 镜像名 -->
                    <imageName>${project.build.finalName}</imageName>
                    <!-- 镜像工作目录 -->
                    <workdir>/usr/local/jar/${project.build.finalName}</workdir>
                    <!-- 执行java程序 -->
                    <entryPoint>java -Dloader.path=lib -jar ${project.build.finalName}.jar</entryPoint>
                    <!-- docker客户端地址 -->
                    <dockerHost>http://IP地址:2375</dockerHost>
                    <!-- 复制jar包到镜像的指定目录 -->
                    <resources>
                        <resource>
                            <!-- 源路径 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 源路径:目标文件 -->
                            <include>${project.build.finalName}.jar</include>
                            <!-- 目标路径 -->
                            <targetPath>/usr/local/jar/${project.build.finalName}</targetPath>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

三、构建镜像

分别执行以下命令:

# 打包项目
mvn package
# 构建镜像
mvn docker:build -Dmaven.test.skip

四、创建并启动容器

执行以下指令

docker run -d --net host 
-v 本地目录:容器目录 
--name 容器名
镜像名

其中:
-d:后台运行容器,并返回容器ID
--net=host :容器和宿主机共用网络,不需要做端口映射(例如 -p 8080:8081

启动之后,可以在idea查看容器日志
在这里插入图片描述

PS:也可以右键选择需要的镜像,创建容器,根据需要进行配置
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐