DockerのAPIを外部から叩く
2019/01/22
サーバにいちいちログインしてdockerコマンドを実行するのが面倒くさい・・・
ってことでDockerを外部から操作できるように設定します。
ここを参考にしました。
前提
Dockerインストール済み
環境
サーバ側
Ubuntu 18
1 2 |
# docker -v Docker version 17.12.1-ce, build 7390fc6 |
クライアント側
MacBook Pro
サーバ側の設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target docker.socket firewalld.service Wants=network-online.target Requires=docker.socket [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 fd:// #変更後 ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=1048576 # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target |
クライアント側
DOCKER_HOSTをサーバのIPに変更し、docker psコマンドを実行して、正しい結果が返ってこれば成功です!!
1 2 |
$ export DOCKER_HOST=tcp://server_ip_address:2375 $ docker ps |