Linux安装Docker详细教程
介绍
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,然后可以在任何支持Docker的Linux机器上运行。这种容器化的方法使得应用可以在不同的环境中以一致的方式运行,无论是开发者的个人笔记本电脑还是高端的云平台。
工作原理
Docker利用Linux内核的cgroup、namespace以及OverlayFS等技术,对进程进行封装隔离,实现了操作系统层面的虚拟化。在Docker中,每个容器都是独立的,并且与宿主机和其他容器隔离。Docker容器的性能开销极低,因为容器直接运行于宿主的内核,没有自己的内核,也不需要像传统虚拟机那样进行硬件虚拟化。
安装
1. Ubuntu/Debian 系统
更新软件包索引
sudo apt update
安装依赖包
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
配置稳定版仓库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新软件包索引并安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
验证安装
sudo docker run hello-world
看到 "Hello from Docker!" 表示成功
2. CentOS/RHEL 系统
安装依赖包
sudo yum install -y yum-utils
添加 Docker 仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
验证安装
sudo docker run hello-world
看到 "Hello from Docker!" 表示成功
配置优化
由于Docker镜像文件通常较大,且需要从Docker Hub(官方镜像仓库)拉取。由于国内网络环境访问国外网站通常会被被限制或连接不稳定,会导致下载速度缓慢,且容易出现 timeout 超时提示。
因此可以通过配置国内镜像实现加速。
编辑 /etc/docker/daemon.json
vim /etc/docker/daemon.json
向该文件添加以下镜像
{
"registry-mirrors": ["https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.actima.top",
"https://atomhub.openatom.cn",
"https://docker.m.daocloud.io",
"https://docker.nastool.de",
"https://dockerpull.org",
"https://registry.dockermirror.com",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.aityp.com",
"https://dockerhub.xisoul.cn",
"https://docker.imgdb.de",
"https://hub.littlediary.cn",
"https://docker.unsee.tech",
"https://hub.crdz.gq",
"https://hub.firefly.store",
"https://docker.kejilion.pro",
"https://dhub.kubesre.xyz",
"https://hub.xdark.top",
"https://docker.udayun.com"
]
}
保存退出,可以检查一下,确定是否配置成功
cat /etc/docker/daemon.json
出现以下内容证明配置成功
重启Docker服务生效:
sudo systemctl restart docker
简单命令
# 查看docker镜像
docker images
# 查看 docker 已经开启的容器
docker ps
# 运行容器
docker run -d(后台运行) --name xxx(指定容器名字) -p 900:900(端口映射,主机端口900->容器端口900) yyy(使用的镜像)
# 进入某个容器
docker exec -it 容器id /bin/bash
# 停止容器
docker stop 容器
# 删除容器
docker rm -f 容器id
卸载Docker
提供简单卸载命令,以供卸载docker时使用
sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker