文章目录
安装、卸载、配置镜像加速
卸载
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
systemctl enable docker
systemctl start docker
配置镜像加速
- 阿里云加速器(登录阿里云官网):工作台-容器镜像服务-镜像工具-镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://n656a96c.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
数据卷 volume
数据卷实现容器与宿主机数据共享的问题,镜像启动时指定数据卷;
docker run [-v :ro] 容器名/id
-v 宿主机路径:容器内路径
# 别名:指定启动前已创建的数据卷
-v 别名:容器内路径
:ro ReadyOnly 容器内只读,只能有宿主机操作
数据卷相关命令
docker volume list # 查看数据卷
docker volume create 数据卷名 # 创建数据卷
docker volume inspect 数据卷名 # 数据卷信息
docker volume rm 数据卷名 # 删除数据卷
docker volume inspect 数据卷名 # 容器卷详情
[
{
"CreatedAt": "2022-09-03T14:54:23+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/aaa/_data",
"Name": "aaa",
"Options": null,
"Scope": "local"
}
]
网络通讯
高级网络配置
当Docker启动时,会自动在宿主机上创建一个docker0的虚拟网桥,实际上是Linux的一个birdge,可以理解为一个软件交换机,他会在挂载到它的网口进行转发。当创建一个Docker容器时,同时会创建一对veth pair接口(当数据包发送到一个接口时,另外一个接口时也是可以收到相同的数据包,这就是为什么通过-p命令可以实现宿主机与容器之间的端口通信)。容器端即eth0,则另一个是本地挂载在docker0网桥,名称以veth0开头,通过这种方式,主机可以跟容器之间通信,容器之间也可以通信。
使用自定义网络桥段后,在容器内部依然可以互通,而且还可以通过容器名称来当做ip使用。
docker run [--network] 容器名/id # --network # 指定网络桥段名称
Docker Compose 容器编排
安装
curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 国内源
curl -L https://download.fastgit.org/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- 安装包安装 下载地址
# 安装
mv docker-compose-Linux-x86_64 docker-compose # 重命名
mv docker-compose /usr/local/bin # 移动至bin
[root@iZbp18eahm3m5nczl60fo4Z bin<