Container
容器Containerd
项目实现(行业标准创建的核心容器运行时服务)Docker客户端
Docker守护进程
Docker注册中心
Docker对象
Docker 的主要工作就是创建和使用各类对象
早期的 docker
基于成熟的 Linux Container (LXC)技术
从0.9版本开始
采用新的容器技术 libcontainer
当前版本
底层依赖的核心技术包括了 Linux 操作系统内核的名称空间、控制组、联合文件系统
名称空间 namespace
控制组 Cgroup
Control Group 底层技术
docker stats
)联合文件系统 UnionFS
将其他文件系统合并在一个联合挂载点的一种特殊文件系统
二进制
禁用防火墙和selinux
设置主机名和/etc/hosts文件解析
设置正确的时间同步
tar xzvf docker-xxx.tgz
cp docker/* /usr/bin/
useradd -s /usr/sbin/nologin -M docker
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
EOF
cat > /usr/lib/systemd/system/docker.socket << EOF
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=docker
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF
systemctl enable docker --now
### 查看启动状态
systemctl start docker
cat > /etc/docker/daemon.json <<EOF
{
"data-root": "/data/docker"
}
EOF
### 重启生效
systemctl daemon-reload
systemctl restart docker
docker info | grep Dir
ubuntu在线安装
官方参考地址:Install Docker Engine on Ubuntu | Docker Docs
### 卸载旧版本
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
rm -rf /var/lib/docker
## 使用apt存储库安装
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
安装特定版本
### 查看版本
apt-cache madison docker-ce | awk '{ print $3 }'
### 安装
VERSION_STRING=5:23.0.6-1~ubuntu.20.04~focal
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
查看状态并验证
systemctl enable docker --now
systemctl status docker
docker run hello-world
Docker Hub 部署在境外服务器,国内私有网络访问可能有点慢,我们可以配置数据中心的镜像加速来提高拉取镜像的速度
"registry-mirrors": ["<镜像加速地址>"]
systemctl daemon-reload
systemctl restart docker
[Docker 所支持的平台](Install Docker Engine | Docker Docs)
[Docker 引擎官方手册](Docker Engine overview | Docker Docs)
[Docker 命令官方手册](Use the Docker command line | Docker Docs)
[Docker Compose 命令手册](Overview of docker compose CLI | Docker Docs)
[Dockerd 命令手册](dockerd | Docker Docs)