$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
deb [arch=amd64] https://download.docker.com/linux/ubuntu artful stable
安装 Docker
$ sudo apt-get update
$ sudo apt-get install docker-ce
制作在有ssh的ubuntu镜像
在 /root 下建立Dockerfile 编辑如下
FROM ubuntu
RUN apt-get update && apt-get install -y ssh
执行命令
docker build -t ubuntu-ssh . #"."表示在当前目录查找Dockerfile文件
docker history ubuntu-ssh #查看镜像建立过程
docker images #查看镜像文件
docker rm #删除容器
docker rmi #删除镜像文件
docker ps -a #查看所有容器状态
创建私有registry
docker run -d -p 5000:5000 -v /myregistry: /var/lib/registry registry:2
变更hosts文件
127.0.0.1 registry.example.net
镜像文件重命名
docker tag httpd registry.example.net:5000/zzy/httpd:v1
上传镜像
docker push registry.example.net:5000/zzy/httpd:v1
下载镜像
docker pull registry.example.net:5000/zzy/httpd:v1
运行容器
docker run httpd
-d 后台运行
-it 交互式打开一个终端
容器分类
服务类容器 适合以 -d 的形式打开 httpd
工具类容器 适合已 -it的形式打开 busybox,ubuntu
进入容器 exec
docker exec -it my_httpd bash
docker exec -it my_httpd ip addr
create/kill/start/restart/stop/pause/unpause 容器
docker rm -v $(docker ps -aq -f status=exited) 删除后台退出的所有容器
内存/cpu/block io限额
docker network
docker network ls #查看网络类型
三种网络类型
none, 只有loopback接口
host, 与docker host 共享网络栈
bridge,docker的默认网络
brctl show #查看bridge网络
创建自定义网络
docker network create --driver bridge my_net
参数
--driver 定义网络类型
--subnet 定义DHCP网段
--gateway 定义网关
创建container接入自定的网络中
docker run -it --network=my_net busybox
参数
--network
--ip
查看自定义网络配置
docker network inspect my_net
将容器添加到网络中
docker network connect my_net1 mystifying_panini
joined容器 与其他容器共享网络栈
首先创建容器 net1_httpd_1
docker run -d --name net1_httpd_1 --network=my_net1 httpd
创建busybox
docker run -it --network=container:net1_httpd_1 busybox
busybox与net1_httpd_1拥有相同的IP地址,二者可以直接通过本地直接互访
将host端口8080 映射至容器的80端口,提供外网服务
docker run -d -p 8080:80 httpd
docker 存储
docker 存储提供2种存放数据的资源
1.由storage driver 管理的镜像层和容器层
原文:http://blog.51cto.com/hetao/2089442