欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

4、为什么使用docker?之Docker建立远程连接

程序员文章站 2022-04-24 07:53:23
...

在开发的时候,我们进程需要用到docker。但很多时候我们用的是window作为开发平台,虽然Docker也有window版本的。但window的DockerToolbox是一款不是很成熟的产品,有很多小伙伴想安装docker都会安装失败,但开发中我们又想用那docker。那么怎么办呢?
其实我们可以使用远程连接来解决。

首先我们要明白DockerToolbox的原理其实也是安装在Oracle VM Virtualbox虚拟机上的。因为我安装Oracle VM Virtualbox一直跑不起docker,所以后面我就选择了使用VMware Workstation Pro安装。当然如果你能够使用DockerToolbox安装成功,那么很好,直接用就行。后面的你也不需要去了解了。

安装方式一,在ubuntu系统上安装docker(推荐)

  1. VMware Workstation Pro 虚拟机
  2. boot2docker.iso 镜像
  3. ubuntu-18.04-server-amd64.iso

安装步骤我就不仔细说了。步骤是,先安装VMware Workstation Pro 虚拟机,然后在VMware Workstation Pro 虚拟机上安装ubuntu系统,最后在ubuntu系统上安装Docker。

ubuntu系统上安装Docker可以参考我的文章。【为什么使用docker?之一docker安装

Docker 默认是不支持外部访问,需要支持外部访问需要我们配置,对外暴露端口。

生产环境一把不会对外暴露,这里对暴露只是为了加速开发需要

1、 修改Docker服务启动配置文件
vim /etc/default/docker

文件打开后,添加如下配置。

DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375"

如图所示:
4、为什么使用docker?之Docker建立远程连接

有时候配置了上面的,重启docker守护线程还是没有生效,所以我们需要再给docker.service文件添加配置。

2、配置docker守护线程监控的配置。
vim /lib/systemd/system/docker.service

配置文件打开后,添如下配置:

EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS

4、为什么使用docker?之Docker建立远程连接

3、加载配置
systemctl daemon-reload
4、重启docker守护线程
systemctl restart docker
5、查看配置是否生效
ps aux|grep docker

如果看到有我图中红线的部分,标识配置已经生效。表示我们可以远程访问docker了。

4、为什么使用docker?之Docker建立远程连接

上面搞等了,我们要需要访问。那么我们需要在开发工具(IDEA)上安装一个插件 Docker integration

插件安装 File > Settings > Plugins 搜Docker integration 即可。如下图

4、为什么使用docker?之Docker建立远程连接

安装完成,重启IDEA后。 File > Settings > Build, Execution, Deployment 下 面会多一个Docker的工具。如下图

4、为什么使用docker?之Docker建立远程连接

然后点击 + 号创建一个连接,我们因为安装在ubuntu上,同时对外暴露了2375端口,所以我们输入宿主机的ip和我们暴露的端口即可连接了。

连接成功后是这样的,如下图,可以看到我们的镜像文件。
4、为什么使用docker?之Docker建立远程连接

这样我就可以利用Docker integration构建镜像,创建仓库,上传镜像等,大大提高了开发效率。更新操作可以参考官方说明:https://www.jetbrains.com/help/idea/docker.html

镜像运行演示

下面我们来演示,运行我们的web:latest镜像。

右击,创建容器
4、为什么使用docker?之Docker建立远程连接

输入容器名字
4、为什么使用docker?之Docker建立远程连接

容器创建成功,右击就可以启动了。
4、为什么使用docker?之Docker建立远程连接

运行效果如图:

4、为什么使用docker?之Docker建立远程连接

知识补充:

如果要在打包的时候就生成镜像文件,那么需要在pom.xml中加入如下插件。

            <!--Docker镜像构建插件,如果没装有docker打包会报错,注释即可-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.plugin.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--使用远程的docker,如果是本地的就不需要配置-->
                    <dockerHost>http://192.168.234.136:2375</dockerHost>

                    <imageName>${docker.image.prefix}/${project.build.finalName}</imageName>
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

安装方式二,直接在VMware Workstation Pro上安装 boot2docker.iso(不推荐)

需要准备的插件:

  1. VMware Workstation Pro 虚拟机
  2. boot2docker.iso 镜像

boot2docker.iso 镜像 文件你可以在DockerToolbox解压后找到安装后可以找到,如果你用这种方法能够安装成功,那你后面的也应该不需要花时间去了解。
4、为什么使用docker?之Docker建立远程连接

boot2docker.iso 你可以在到:https://github.com/boot2docker/boot2docker/releases 下载。

这文章,主要是给windows上有需要安装docker开发,但又各种安装DockerToolbox失败的,希望对你有所帮助。