配置 Docker 守护进程
用宝塔打开找到路径 /usr/lib/systemd/system 下的 docker.service 文件编辑它
搜 ExecStart
原
1
| ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
|
改
1
| ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:23756 -H unix://var/run/docker.sock
|
去 shell 那输入,重新加载 docker 的配置
1 2 3
| systemctl daemon-reload
systemctl restart docker
|
再去安全那开发端口 23756 同步到外部云也开发
IDEA 配置 Docker 插件
idea 安装插件 docker 并打开编辑配置它,选 tcp 里 socket
1
| tcp://162.14.96.81:23756
|
连接即可!感觉这个端口有点危险,换一个比较好
Maven 引入依赖
引入依赖,镜像名称必须是小写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <dependencies> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> </dependency> </dependencies>
<configuration> <dockerHost>http://162.14.96.81:23756</dockerHost> <imageName>sxl/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
|
创建 Dockerfile
在 src/main/docker 下创建文件 Dockerfile
1 2 3 4 5 6 7 8 9
| FROM openjdk:8-jre
COPY *.jar /app.jar
EXPOSE 10086
ENTRYPOINT ["java","-jar","app.jar"]
|
构建与部署
再去右侧 maven 树那边
项目下的 Lifecycle 中 package
去控制台里的 docker 插件中查看 images 中就能发现多了一个自己项目的镜像
右键项目镜像 --> 创建容器 --> 名字看着来 --> 最好是点击 Modify options 中的 Run options
然后输入名称 以及运行参数
Run 起来,这个后端项目的端口记得也去开放一下
更新部署
如果是更新代码,删除掉 docker 里生成的项目镜像和它的缓存镜像,去 package 一下,再右键项目镜像,创建它即可