Docker开启Remote API

远程执行Docker命令,基本有两种方式,一种是SSH到宿主机上,相当于在宿主机本地执行。一种是利用Docker的Remote API,打开2375端口,直接远程执行。本文说的是第二种方式,发行版Debian8。

1、临时方案:在宿主机上直接执行

#旧版本
docker -H 0.0.0.0:2375 -d &
#新版本
docker daemon -H 0.0.0.0:2375 &

2、永久方式
2.1编辑/etc/systemd/system/docker-tcp.socket

[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=2375
BindIPv6Only=both
Service=docker.service

[Install]
WantedBy=sockets.target

2.2执行

systemctl enable docker-tcp.socket
systemctl stop docker
systemctl start docker-tcp.socket
systemctl start docker

3、测试

#本地
docker -H tcp://127.0.0.1:2375 ps
#远程
docker -H tcp://HOST_IP:2375 ps

Docker常用命令

1、镜像相关的命令

#从docker hub查询镜像
sudo docker search xxx

#从docker hub拉取镜像
sudo docker pull xxx

#列出本地镜像
sudo docker images

#删除本地镜像
sudo docker rmi xxx

#登陆登出registry
sudo docker login
sudo docker logout

#从docker file创建镜像
sudo docker build

#从contianer创建镜像
sudo docker commit

#标记镜像
sudo docker tag

#镜像发送到registry
sudo docker push

2、contianer相关命令

#创建但不运行contianer
sudo docker create xxx

#创建并运行contianer
sudo docker run xxx

#运行contianer
sudo docker start xxx

#停止contianer
sudo docker stop xxx

#杀死contianer
sudo docker kill xxx

#查看正在运行的本地contianer列表
sudo docker ps

#查看全部本地contianer列表
sudo docker ps -a

#查看contianer详情
sudo docker inspect xxx

#查看contianer日志
sudo docker logs xxx

#查看contianer端口
sudo docker port xxx

#查看contianer进程
sudo docker top xxx

#删除contianer
sudo docker rm xxx

3、宿主机操与虚拟机互操作

#附加到contianer,没有反应,可以按向上键
sudo docker attach xxx
#退出
#Ctrl+D
#detach
#Ctrl+P Ctrl+Q

#容器与宿主机之间拷贝文件
sudo docker cp xxx:/yyy /zzz

#在宿主机执行容器中的命令
sudo docker exec xxx yyy

#查看docker信息
sudo docker info

4、网络

#查看网络
sudo docker network ls

#创建网络
sudo docker network create xxx