安装Docker

按官方说法,Docker客户端现在可以安装到Linxu、Windows和MacOS上。但其实,在Windows和MacOS上,都需要安装一个工具叫做Docker Toolbox。该工具的作用是,帮你安装VirtualBox,创建虚拟机,并用Boot2Docker进行启动。

说实话,该工具做的还不是很完善,而且做了太多的假设,我并不喜欢。比如虚拟机路径必须在~/.docker/machine下面。比如会强制帮你安装网卡。比如docker-machine获取虚拟机的IP时,默认虚拟机第二块网卡设置为Host-Only,并通过VBoxManage获取虚拟机第二块网卡IP地址(源码中写死的)。不推荐大家使用。如果一定要用的话,大家还是不要用docker-machine,只需要docker和Git就够了。

说这么多,就是不想大家花费太多时间,用不完善的工具,来体验Docker的强大 。所以建议大家还是直接使用Linux,或者在虚拟机里自己安装Linux会好一些。我喜欢Debian,但如果你不太熟,建议用Ubuntu。

1、安装Linux,并保证可以联网

2、安装Docker

#从网址取回文件,输出到标准输出,并传递给sh执行
wget -qO- https://get.docker.com/ | sh

3、测试安装是否成功

#docker从repository取回hello-world:latest的镜像,并运行
docker run hello-world

#docker从repository取回debian:latest的镜像,并运行bash命令
docker run -it debian bash

4、docker常用命令

#查看本地有哪些镜像
docker images

#查找debian镜像
docker search debian

#取回debian6的镜像
docker pull debian:6

#按image-id删除镜像
docker rmi image-id

#查看当前运行的容器
docker ps

#kill一个容器
docker kill contianer-id

#删掉一个容器 
docker rm contianer-id

#杀掉所有容器
docker kill $(docker ps -a -q)

#删除所有容器
docker rm $(docker ps -a -q)

PS:
boot2docker的默认用户为docker,密码为tcuser

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