Docker开启远程进程服务以及VSCode、Idea等IDE连接使用远程
Docker远程服务
开发环境大多使用的的是windows系统,服务器运行环境一般采用Linux系统,这时候生成镜像时用到远程连接Docker服务。
一、开启Docker远程
1、如果只是临时使用远程docker,使用以下命令:
sudo dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
2、如果使用docker启动时开启远程docker,则修改 /lib/systemd/system/docker.service 的ExecStart(不同版本的docker可能不同,处理思路类似)
vim /lib/systemd/system/docker.service
原docker.service配置中的ExecStart配置项
ExecStart=/usr/bin/dockerd -H unix://
修改为
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
重启Docker配置生效
systemctl daemon-reload
systemctl restart docker
二、VSCode连接Docker远程服务
1、Docker插件
点击插件扩展按钮,下载Docker插件
重新打开VSCode,点击Docker插件按钮
2、Docker插件配置Docker远程
打开VSCode设置,在Docker Host中添加远程Docker地址和端口,注意是http协议头http://
点击Docker插件按钮,此时已连接Docker
三、Idea连接Docker远程服务
1、Docker插件
2、Docker插件配置,TCP Socket添加远程Docker,tcp://开头
四、项目中Docker配置
maven项目中添加docker-maven-plugin插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerHost>http://192.168.2.23:2375</dockerHost>
<imageName>my-sky/${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>
</plugin>
- dockerDirectory标签为Dockerfile存放位置
- dockerHost标签为远程Docker地址
- imageName标签为生成镜像名
- targetPath标签为本地镜像存放位置
Docker上传镜像到远程Docker服务器时,特别注意本地镜像存放位置targetPath
Dockerfile示例
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springboot.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
五、项目打包生成镜像
命令行进入pom.xml所在文件夹,并执行打包生成镜像,上传镜像至Docker远程服务器
mvn clean package docker:build