docker的基本组成:
镜像(image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)。
容器(container):
docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前可以把容器理解为一个简易的linux系统。
仓库(repository):
仓库就是来存放镜像的地方!
仓库分为共有仓库和私有仓库!
docker hub(默认是国外的)
阿里云……都有容器服务(配置镜像加速)
docker安装
官方帮助文档:
https://docs.docker.com/engine/install/
1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装需要的安装包
yum install -y yum-utils
3、设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# (默认是国外的)
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# (推荐使用阿里云的,比较快)
更新yum软件包索引
yum makecache fast
4、安装docker相关的引擎
# docker-ce 社区 -ee 企业
yum install docker-ce docker-ce-cli containerd.io
5、启动docker
systemctl start docker
6、查看是否安装成功
docker version
7、运行hello-world
docker run hello-world
8、查看下载的hello-world镜像
docker images
卸载
1、卸载依赖Docker
yum remove docker-ce docker-ce-cli containerd.io
2、删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
/var/lib/docker # docker的默认工作路径
阿里云镜像加速
1、 登录阿里云找到容器服务
2、找到镜像加速地址
3、配置使用
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://54kqiqt1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
使用 shell 脚本部署 Docker
1、编写 docker_install.sh 脚本
vim docker_install.sh
#!/bin/bash
# 检测是否已安装 Docker
if command -v docker &>/dev/null; then
echo "Docker 已经安装,无需重复安装。"
exit 1
fi
# 函数:输出错误消息并退出
exit_with_error() {
echo "错误:$1"
exit 1
}
# 安装需要的软件包
if ! yum install -y yum-utils &>/dev/null; then
exit_with_error "安装 yum-utils 失败。"
fi
# 设置 Docker 镜像仓库
docker_repo_url="http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo"
if ! yum-config-manager --add-repo "$docker_repo_url" &>/dev/null; then
exit_with_error "设置 Docker 镜像仓库失败。"
fi
# 更新 yum 软件包索引
if ! yum makecache fast &>/dev/null; then
exit_with_error "更新 yum 软件包索引失败。"
fi
# 安装 Docker 相关的引擎
if ! yum install -y docker-ce docker-ce-cli containerd.io &>/dev/null; then
exit_with_error "安装 Docker 引擎失败。"
fi
# 启动 Docker
if ! systemctl start docker &>/dev/null; then
exit_with_error "启动 Docker 失败。"
fi
# 检查 Docker 是否成功启动
if systemctl is-active docker &>/dev/null; then
echo "Docker 启动成功!"
else
exit_with_error "Docker 启动失败。"
fi
2、授权并运行脚本
# 授权
chmod a+x docker_install.sh
# 运行脚本
./docker_install.sh
使用 shell 脚本卸载 Docker
1、编写 docker_remove.sh 脚本
vim docker_remove.sh
#!/bin/bash
# 检测是否已安装 Docker
if ! command -v docker &>/dev/null; then
echo "Docker 未安装,无需卸载。"
exit 1
fi
# 停止 Docker 服务
if ! systemctl stop docker &>/dev/null; then
echo "停止 Docker 服务失败。"
exit 1
fi
# 卸载 Docker 相关的软件包
if ! yum remove -y docker-ce docker-ce-cli containerd.io &>/dev/null; then
echo "卸载 Docker 相关软件包失败。"
exit 1
fi
# 删除 Docker 数据目录(谨慎操作)
read -p "是否删除 Docker 数据目录?(y/n): " confirm
if [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]]; then
if ! rm -rf /var/lib/docker &>/dev/null; then
echo "删除 Docker 数据目录失败。"
exit 1
fi
echo "Docker 数据目录已成功删除。"
else
echo "已取消删除 Docker 数据目录。"
fi
echo "Docker 卸载完成。"
2、授权并运行脚本
# 授权
chmod a+x docker_remove.sh
# 运行脚本
./docker_remove.sh