docker镜像管理
1、安装docker
- yum安装
# 安装依赖包
yum install -y yum-utils
# 添加docker源
yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker-ce
yum install -y docker-ce
# 启动并验证
systemctl start docker
docker info
# 设置开机启动
systemctl enable docker
- 二级制安装
# 解压二进制包
tar xf docker-20.10.3.tgz -C /usr/bin/ --strip-components=1
# 设置systemctl启动
vi /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
# 设置docker启动和开机自启
systemctl start docker
systemctl enable docker
2、docker版本
-
社区版(docker-ce)
-
企业版(docekr-ee)
生产环境大多用docker-ce
3、镜像是什么
-
一个分层存储的文件,不是一个单一的文件
-
一个软件的环境
-
一个镜像可以创建N个容器
-
一种标准化的交付
-
一个不包含linux内核而又精简的linux操作系统
4、镜像从哪里来
- docker hub是由docker公司负责维护的公共注册中心,包含大量的容器镜像,docker工具默认从公共镜像库下载镜像
- 配置镜像加速器
vi /etc/docker/daemon.json
{ "registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"exec-opts": ["native.cgroupdriver=systemd"]
}
5、镜像与容器联系
- 当启动一个新的容器时,docker会加载只读镜像,并在其上添加一个读写层,即容器层
6、镜像管理常用命令
7、镜像存储核心技术:联合文件系统(UnionFS)
- docker引入联合文件系统,将镜像多层文件联合挂载到容器文件系统
8、镜像存储核心技术:写时复制(COW)
- docker引入写时复制(copy-on-write)技术,需要进行文件修改时,会先从镜像里把要写的文件复制到自己的文件系统中进行修改。
9、优化建议
-
使用SSD固态硬盘
-
使用卷作为频繁读写文件的工作目录,绕过存储驱动,减少抽象的开销。