我开发机器上的内存不大,能不安装在本地的应用就都跑在服务器上了,但是本地打包时需要用到docker打包成镜像,这时会本地运行docker,所以准备本地只使用docker客户端,连接服务器上的docker服务端
服务端配置
docker服务端默认只能本地连接,需要开启tcp连接方式,打开文件/usr/lib/systemd/system/docker.service
文件找到以下第六行的配置修改,增加-H tcp://0.0.0.0:2375
[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 tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
保存重启docker服务端:
systemctl daemon-reload && systemctl restart docker
客户端配置
这里可以先在你本地机器的终端上运行以下命令试试服务端是否已经开启tcp连接
docker -H 192.168.3.96:2375 ps -a
没问题的话,现在只需要添加以下环境变量即可:
export DOCKER_HOST=tcp://192.168.3.96:2375
有了环境变量之后操作docker都会操作服务端的docker服务
idea配置
我是用了dockerfile-maven-plugin
插件打包项目,需要基于package命令添加环境变量
这样后面打包就可以直接把镜像打包到服务器上了