前言
在我们开发测试过程中,需要频繁的更新docker镜像,然而默认情况下,docker的2375端口是关闭的,下面介绍如何打开端口。
- 修改docker配置文件 操作步骤:
1.1、修改配置
登录docker所在服务器,修改docker.service文件
在 /usr/lib/systemd/system/docker.service 目录下 编辑 docker.service 文件
搜索 ExecStart= 找到下面的配置进行修改
修改如下内容:将
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
1.2 重启服务
最后重新加载服务的配置文件和重启docker服务:
systemctl daemon-reload
systemctl restart docker
这样配置后,Docker私有仓库就会在2375端口上运行,可以使用2375端口来进行远程操作。
2 、Idea 安装docker 插件
2.1 在idea 下载安装docker
在setting->plugins->搜索docker 进行安装
2.2配置docker地址:
Tcp socker 配置:tcp://ip:2375
3、创建docker文件夹和Dockerfile文件,docker与src同级
Dockerfile 内容:
index-service 实例:
FROM openjdk:8-jdk
ENV LANG C.UTF-8
ENV LANGUAGE zh_CN.UTF-8
ENV LC_ALL C.UTF-8
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
ADD /index-service.jar /app.jar
EXPOSE 8199
CMD ["java","-Dfile.encoding=UTF-8","-Dsun.jnu.encoding=UTF-8","-jar","/app.jar"]
4、Pom.Xml 文件增加相关依赖: 在Build中 ,例如:
<build>
<finalName>index-service</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
<jvmArguments>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
</jvmArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名-->
<imageName>${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定 Dockerfile 路径-->
<dockerDirectory>${basedir}/docker</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://192.168.3.240:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
<include>classes/page/</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
5、在idea的右边找到Maven Projects,找到Lifecycle,双击package打包,第一次打包比较慢,需要安静等待。
- 等打包成功后,会生成镜像。在docker中找到images 点击打开 ,找到自己服务的镜像,例如 index-service:latest
- 使用镜像创建容器,然后启动: 右键 镜像 点击 create container (创建容器) ,进行容器创建 ,创建完可以点击下方的 run(启动) 按键 直接进行启动
- 可以在容器中进行管理操作,在docker中找到container 点击打开 找到自己的容器 右键 ,可以进行启动 启动 、 停止 、 编辑等
9、启动后可以在 docker 中查看自己的服务