Ubuntu服务器开启Docker远程访问

在使用Idea直接构建Dokcerfile文件时,我们需要打开Docker的远程访问!

(一)开启Docker远程访问

Docker的启动配置文件在Ubuntu18.04系统的路径为/lib/systemd/system/docker.service

  1. 进入到/lib/systemd/system路径下,然后编辑docker.service配置文件:

    vim /lib/systemd/system/docker.service
    
  2. 找到ExecStart所对应的行,修改为(Docker的远程访问接口为2375):

    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
    
  3. 保存并退出编辑后,重载守护进程以及重启Docker:

    sudo systemctl daemon-reload
    
    sudo service docker restart
    
  4. 可通过执行命令查看是否开放了远程访问端口:

    sudo systemctl status docker.service
    

(二)然后可在Idea中测试能否远程上Docker以及能否在Maven中构建DockerFile文件并发送到Ubuntu服务器:

Idea远程访问Docker设置在这里插入图片描述

maven配置文件中的docker插件配置:

<build>
    <plugins>
        <!-- docker镜像build插件 -->
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.0</version>
            <!-- 绑定docker命令到 maven各个阶段 -->
            <!-- 解释:可以把 docker 分为 build、tag、push,然后分别绑定 Maven 的 package、deploy 阶段 -->
            <executions>
                <execution>
                    <id>build-image</id>
                    <!-- 这里将插件绑定在package这个操作上。用户只需执行mvn package ,就会自动执行mvn docker:build  相当于执行了mvn clean package docker:build -->
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- imageName镜像名称需匹配[a-z0-9-_.],否则构建不会成功 -->
                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                <!-- 指定Dockerfile文件路径,另外一种方式可直接在pom.xml配置对应的标签属性值 -->
                <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                <!-- build时,指定–rm=true即build完成后删除中间容器 -->
                <rm>true</rm>
                <!--指定标签-->
                <imageTags>
                    <imageTag>latest</imageTag>
                </imageTags>
                <!--指定远程 docker 服务器ip地址-->
                <dockerHost>http://192.168.0.12:2375</dockerHost>
                <!-- 这里是复制jar包到docker容器指定目录配置 -->
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <!-- jar包所在的路径  此处配置的 即对应 target 目录 -->
                        <directory>${project.build.directory}</directory>
                        <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

版权声明:本文为u013068184原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。