• #">Docker常见端口#
  • #">开启配置#
    • #">方法一#
    • #">方法二#
    • #">方法三#
  • #">简单使用#

    Docker常见端口#

    我看到的常见docker端口包括:

    2375:未加密的docker socket,远程root无密码访问主机 2376:tls加密套接字,很可能这是您的CI服务器4243端口作为https 443端口的修改 2377:群集模式套接字,适用于群集管理器,不适用于docker客户端 5000:docker注册服务 4789和7946:覆盖网络

    开启配置#

    方法一#

    首先是怎么配置远程访问的API:

    1. sudo vim /etc/default/docker

    加入下面一行

    1. DOCKER_OPTS="-H tcp://0.0.0.0:2375"

    重启docker即可:

    1. sudo systemctl restart docker

    PS:这是网上给的配置方法,也是这种简单配置让Docker Daemon把服务暴露在tcp的2375端口上,这样就可以在网络上操作Docker了。Docker本身没有身份认证的功能,只要网络上能访问到服务端口,就可以操作Docker。

    方法二#

    在/usr/lib/systemd/system/docker.service,配置远程访问。
    主要是在[Service]这个部分,加上下面两个参数

    1. # vim /usr/lib/systemd/system/docker.service
    2. [Service]
    3. ExecStart=
    4. ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

    重启

    1. systemctl daemon-reload
    2. systemctl restart docker

    方法三#

    下面修改daemon.json的配置

    1. vim /etc/docker/daemon.json
    2. {
    3. "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
    4. }

    “unix:///var/run/docker.sock”:unix socket,本地客户端将通过这个来连接 Docker Daemon。 “tcp://0.0.0.0:2375”:tcp socket,表示允许任何远程客户端通过 2375 端口连接 Docker Daemon。

    修改配置以后
    然后让docker重新读取配置文件,并重启docker服务

    1. systemctl daemon-reload
    2. systemctl restart docker

    查看docker进程:

    1. [root@slaver2 ~]# ps -ef|grep docker
    2. 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,这样才能实现远程通信

    简单使用#

    -H为连接目标主机docker服务
    查看docker版本

    1. [root@slaver2 /]# docker -H tcp://18.16.202.95:2375 version
    2. Client: Docker Engine - Community
    3. Version: 19.03.0
    4. API version: 1.40
    5. Go version: go1.12.5
    6. Git commit: aeac9490dc
    7. Built: Wed Jul 17 18:15:40 2019
    8. OS/Arch: linux/amd64
    9. Experimental: false
    10. Cannot connect to the Docker daemon at tcp://18.16.202.95:2375. Is the docker daemon running?

    查看镜像包:

    1. [root@slaver2 ~]# docker -H tcp://18.16.202.95:2375 images
    2. REPOSITORY TAG IMAGE ID CREATED SIZE
    3. zookeeper 3.5.5 3487af26dee9 4 weeks ago 225MB
    4. k8s.gcr.io/kube-apiserver v1.15.1 68c3eb07bfc3 8 weeks ago 207MB
    5. k8s.gcr.io/kube-scheduler v1.15.1 b0b3c4c404da 8 weeks ago 81.1MB
    6. k8s.gcr.io/kube-proxy v1.15.1 89a062da739d 8 weeks ago 82.4MB
    7. k8s.gcr.io/kube-controller-manager v1.15.1 d75082f1d121 8 weeks ago 159MB
    8. quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 7 months ago 52.6MB
    9. k8s.gcr.io/coredns 1.3.1 eb516548c180 8 months ago 40.3MB
    10. k8s.gcr.io/etcd 3.3.10 2c4adeb21b4f 9 months ago 258MB
    11. quay.io/jetstack/cert-manager-controller v0.5.2 2e4d862afebb 9 months ago 47.3MB
    12. confluentinc/cp-kafka 5.0.1 5467234daea9 10 months ago 557MB
    13. k8s.gcr.io/pause 3.1 da86e6ba6ca1 21 months ago 742kB
    14. radial/busyboxplus curl 71fa7369f437 4 years ago