文章目录
- Docker
- Docker Official Website
- Docker Install
- Docker Change Image
- Docker Change Dir
Docker
Docker本质其实时LXC之类的增强版,它本身不是容器,而是容器的易用工具。Docker时让容器技术普及开来的最成功的实现。它的主要目标是"Build, Ship and Run Any APP, anytwhere",使得用户的应用及其余小宁环境可以做到"一次封装,到处运行"
Docker创建容器时,不再使用模板去安装生成,而是通过镜像技术(把一个操作系统用户空间所需要的组件事先编排好,并整体打包成一个.image文件),托管在镜像仓库中。当需要创建容器时,Docker直接调用LXC工具lxc-create,但不通过LXC模板安装,而是直接连接镜像仓库下载匹配文件,再基于镜像启动容器。
Docker Official Website
Docker 官网 https://www.docker.com/
开发者文档
重点:Manuals和Reference
Docker 官方架构
Docker 使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。Docker容器通过Docker镜像来创建
Docker仓库 Registry 用于保存镜像。Docker Hub拱了庞大的镜像集合供使用
Docker daemon 服务器组件(类似于接待员),Docker最核心的后台进程,我们页把他称之为守护进程
Docker客户端(Client) 通过命令行或者其他工具使用Docker API和Docker的守护进程通信
Docker主机(Host) 一个和物理或者虚拟的机器用于执行Docker守护进程和容器
Docker镜像(Images) Docker镜像用于创建Docker容器的模板
Docker Install
# 卸载
cat /etc/*release* # 确认操作系统
uname -a # 确认cpu架构
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 删除机器上的包
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /data/var/lib/docker
sudo rm -rf /etc/docker/daemon.json
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's@//download.docker.com@//mirrors.ustc.edu.cn/docker-ce@g' /etc/yum.repos.d/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#配置加载
sudo systemctl daemon-reload
#启动服务
sudo systemctl start docker
#开启启动
sudo systemctl enable docker
#查看服务状态
sudo systemctl status docker
Docker Change Image
# 在配置文件/etc/docker/daemon.json 中加入镜像源信息
[root@VM-20-6-centos docker]# cat daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
[root@VM-20-6-centos docker]# ll
total 4
-rw-r--r-- 1 root root 160 May 26 21:10 daemon.json
[root@VM-20-6-centos docker]# systemctl daemon-reload # 更新配置
[root@VM-20-6-centos docker]# systemctl restart docker # 重启服务
Docker Change Dir
Docker默认安装目录在var/lib/docker
,这里面通常会存放很多镜像,所以我们在安装时需要考虑这个目录的空间,有三种解决方案
- 将/var/lib/docker目录挂载到一个很大的磁盘,像腾讯云在安装K8S的结点时就提供这种选项
- 安装之前挂载一个大磁盘,然后创建一个软连接到/var/lib/docker. 这样就自动安装到大磁盘上
- 修改docker的配置文件
# 方案3
#假定我们磁盘的大的目录为 /data
mkdir -p /data/var/lib/docker
# 编辑配置文件
vim /etc/docker/daemon.json
# 输入下面的 json
{
"data-root": "/data/var/lib/docker"
}
# 加载配置
sudo systemctl daemon-reload
# 重启 docker
sudo systemctl restart docker
#查看 docker 状态
sudo systemctl status docker
# 可以看到docker将自己的配置文件都移动过来了
[root@VM-20-6-centos docker]# ll /data/var/lib/docker/
total 44
drwx--x--x 4 root root 4096 May 26 21:22 buildkit
drwx--x--- 2 root root 4096 May 26 21:22 containers
-rw------- 1 root root 36 May 26 21:22 engine-id
drwx------ 3 root root 4096 May 26 21:22 image
drwxr-x--- 3 root root 4096 May 26 21:22 network
drwx--x--- 3 root root 4096 May 26 21:22 overlay2
drwx------ 4 root root 4096 May 26 21:22 plugins
drwx------ 2 root root 4096 May 26 21:22 runtimes
drwx------ 2 root root 4096 May 26 21:22 swarm
drwx------ 2 root root 4096 May 26 21:22 tmp
drwx-----x 2 root root 4096 May 26 21:22 volumes