Docker开启远程进程服务以及VSCode、Idea等IDE连接使用远程

徘徊边缘 提交于 2019-12-08 23:50:26

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!