idea的Docker插件实现远程Docker连接(Remote API)
一、Docker开启Remote API访问2375端口1.Docker常见端口2375:未加密的docker socket,远程root无密码访问主机2376:tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改2377:群集模式套接字,适用于群集管理器,不适用于docker客户端5000:docker注册服务4789和7946:覆盖网络2.开启方法一配置远程访
一、Docker开启Remote API访问2375端口
1.Docker常见端口
2375:未加密的docker socket,远程root无密码访问主机
2376:tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改
2377:群集模式套接字,适用于群集管理器,不适用于docker客户端
5000:docker注册服务
4789和7946:覆盖网络
2.开启方法一
配置远程访问的API:
vi /etc/default/docker
加入下面一行
DOCKER_OPTS="-H tcp://0.0.0.0:2375"
重启docker即可:
sudo systemctl restart docker
PS:这是网上给的配置方法,也是这种简单配置让Docker Daemon把服务暴露在tcp的2375端口上,这样就可以在网络上操作Docker了。Docker本身没有身份认证的功能,只要网络上能访问到服务端口,就可以操作Docker。
然而我并没有这个文件
3.开启方法二
在/usr/lib/systemd/system/docker.service,配置远程访问。
主要是在[Service]这个部分,加上下面两个参数
# vi /usr/lib/systemd/system/docker.service
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重启
systemctl daemon-reload
systemctl restart docker
查看docker进程:
[root@slaver2 ~]# ps -ef|grep docker
root 44221 1 1 18:16 ? 00:00:06 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
Docker守护进程打开一个HTTP Socket,这样才能实现远程通信
4.开启方法三
下面修改daemon.json
的配置
vim /etc/docker/daemon.json
{
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
}
"unix:///var/run/docker.sock":unix socket,本地客户端将通过这个来连接 Docker Daemon。
"tcp://0.0.0.0:2375":tcp socket,表示允许任何远程客户端通过 2375 端口连接 Docker Daemon。
修改配置以后
然后让docker重新读取配置文件,并重启docker服务
systemctl daemon-reload
systemctl restart docker
然而我没有daemon.json文件,自己新增了文件后加入了上面说的东西后,docker无法启动了
5.成功后试一下连接远程docker
-H为连接目标主机docker服务
查看docker版本
[root@slaver2 /]# docker -H tcp://IP:2375 version
Client: Docker Engine - Community
Version: 19.03.0
API version: 1.40
Go version: go1.12.5
Git commit: aeac9490dc
Built: Wed Jul 17 18:15:40 2019
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at tcp://IP:2375. Is the docker daemon running?
二、idea使用Docker插件实现远程连接
1.idea安装docker插件
安装好后重启idea
2.idea配置docker插件
3.创建Dockerfile
先创建一个简单的springboot项目,带有测试使用的controller
然后在pom.xml那一级目录中创建dockerfile
dockerfile内容
# Docker image for springboot application
# VERSION 0.0.1
# Author: bolingcavalry
### 基础镜像
#FROM centos:7
#
#RUN yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel vorbis-tools
#
#COPY target/service2-1.0-SNAPSHOT.jar /service2-1.0.jar
#
#EXPOSE 8080
#
#CMD ["/bin/bash","-c","java -jar /service2-1.0.jar"]
## 基础镜像,使用alpine操作系统,openjkd使用8u201
FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER sid
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/service2-1.0-SNAPSHOT.jar service2-1.0.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/service2-1.0.jar"]
#暴露8080端口
EXPOSE 8080
4.配置启动远程Build镜像切运行容器
启动(在此之前确保远程docker启动了)
请求
去这个IP对应的机器上 docker ps一下
更多推荐
所有评论(0)