安装
1 | sudo yum install docker |
常用命令
1 | # 创建并运行新的镜像(命令) |
容器端口映射
使用系统的端口映射到容器的端口,用来提供容器服务
1 | docker run [-P][-p] |
管理镜像
1 | # 列出镜像 |
获取和推送镜像
1 | # 查找镜像 |
构建镜像
1 | 通过容器 |
dockerfile
文档
1
2 RUN
EXPORT
构建缓存
构建中会缓存构建中间层对象
查看镜像构建过程
docker history
网络连接
docker0 网卡(linux 虚拟网桥)
- 特点
- 设置IP地址
- 相当与拥有一个隐藏的虚拟网卡
- 地址划分
- IP:172.17.42.1 MASK:255.255.0.0
- MAC 一个范围
- 总共提供了65534个地址
结构图1
2
3
4
5
6
7
8
9
10=============================
= =
= docker0 =
= veth* veth* veth* = HOST
= || || || =
=============================
|| || ||
====== ====== ======
=eth0= =eth0= =eth0= CONTAINERS
====== ====== ======
自定义虚拟网桥
添加虚拟网桥
1
2sudo brctl addbr br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0更改docker守护进程中启动配置
1
2/etc/default/docker 中添加DOCKER_OPS值
-b=br0
容器之间互联
允许所有容器互联
1 | `--icc=true` |
拒绝所有容器互联
1 | --icc=false |
允许特定容器互联
1 | --icc=false --iptables=true |
容器与外部网络连接
1 | --ip-forward=true |
深入了解可以通过学习iptables
docker数据卷
数据卷是通过特殊设计的目录, 可以绕过联合文件系统(UFS),为一个或多个容器提供访问
为了数据的永久化,独立于容器的生存周期。
特点
- 在容器启动时初始化,如果容器使用的镜像在挂在店包含了数据, 这些数据会拷贝到新初始化的数据卷中
- 数据卷可以在容器之间爱你共享和重用
- 可以对数据卷中的内容直接进行修改
- 数据卷的变化不会影响镜像的更新
- 卷会一致存在,即时挂载数据卷的容器已经删除
为容器添加数据卷docker run -v ~/container_data:/data -it centos /bin/bash
dockerfile文件VOLUME ['path/to']
数据卷容器
命名的容器挂载数据卷, 其他容器通过挂载这个容器实现数据共享docker run --volumes-from [CONTAINER NAME]