使用idea的Docker插件,远程build Dockerfile和自动运行容器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_23035335/article/details/100669053

使用idea的Docker插件,远程build Dockerfile和自动运行容器

第一步:启动Docker远程服务

Docker默认情况下本机使用docker命令操作镜像和容器,Docker还提供了 -H可以连接远程的Docker服务器进行远程镜像
和容器管理,项目中使用maven可以通过DockerFile远程连接并构建镜像 ,达到快速测试的目的

默认docker服务启动 文件(/usr/lib/systemd/system/docker.service)编辑文件 
在ExecStart后面 添加一行(表示启动2375端口 用于监听远程操作)
-H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock \
        -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always

重新加载服务

[java@aliyun /]# sudo systemctl daemon-reload 

重启docker服务

[java@aliyun /]# sudo systemctl restart docker

确认是否已经打开2375端口:$sudo netstat -ntlp |grep docker

使用任意一台有Docker的机器上运行(以下 images是显示的就是远程100.100.100.233上的所有镜像)

[java@centos101 tmp]$ sudo docker -H 100.100.100.233 images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               5.0.5               f7302e4ab3a8        3 weeks ago         98.2MB
mysql               8.0                 62a9f311b99c        3 weeks ago         445MB

第二步:查看是否已经安装Docker插件

第三步:配置idea的远程Docker

第四步:编写Dockerfile,Dockerfile直接放在module目录下

# 基础镜像
FROM openjdk:8-jdk-alpine

# 作者信息
MAINTAINER "masterJ [email protected]"

# 添加一个存储空间
#通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。
#还有一个区别是,通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的。
#   $docker inspect 容器id   可以看到"Mounts":[{..."Source": "/var/lib/docker/volumes/dae714b58b31b3070cf15a6b7db02456c74641d03d8acdfcf7b95040b948aed5/_data",...}]
VOLUME /tmp

# 暴露8080端口,这里暴露的也就是tomcat的端口
EXPOSE 8080

# 添加变量,如果使用dockerfile-maven-plugin,则会自动替换这里的变量内容
ARG JAR_FILE=/target/eladmin.jar

# 往容器中添加jar包
ADD ${JAR_FILE} app.jar
#ADD /target/eladmin.jar app.jar

# 启动镜像自动运行程序
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/urandom","-jar","/app.jar"]

第五步:配置项目(或module)的Docker

第六步:运行,切记:运行前得手动先打包,不然Dockerfile里面写的jar包路径就会找不到,这里的运行只是远程运行docker命令,并不会自动给项目打包

猜你喜欢

转载自blog.csdn.net/qq_23035335/article/details/100669053
今日推荐