文章目录
0.安装Docker
1.CentOS安装Docker
- 1.1.卸载(可选)
- 1.2.安装docker
- 1.3.启动docker
- 1.4.配置镜像加速
- 1.5 测试
- 1.6 卸载docker
2.CentOS7安装DockerCompose
- 2.1.下载
- 2.2.修改文件权限
- 2.3.Base自动补全命令
3.Docker镜像仓库
- 3.1.简化版镜像仓库
- 3.2.带有图形化界面版本(推荐)
- 3.3.配置Docker信任地址
最近有个需求,将程序部署到docker上运行,此时就得在CentOS上安装docker,拉取相关容器、镜像。CentOS安装Docker的详细安装步骤如下。
0.安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
Docker CE 分为 stable
test
和 nightly
三个更新频道。
官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。
1.CentOS安装Docker
Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10, CentOS 7 满足最低内核的要求,所以我们在CentOS 7安装Docker。
1.1.卸载(可选)
如果之前安装过旧版本的Docker,可以使用下面命令卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2.安装docker
1)首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
注意此处可能会报错Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=vag error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
。没有该报错的直接进行 2)更新本地yum镜像源。
网上找了很多教程,尝试多次都无果,以为是网络不可达,反复检查 ip,网关,DNS 以及各种 ping后都确定没问题。最后找到的解决方案(成功解决)——备份删除/etc/yum.repos.d/下的CentOS-Base.repo,使用,参考 。
cd /etc/yum.repos.d/
cp CentOS-Base.repo CentOS-Base.repo.backup
rm -rf CentOS-Base.repo
touch CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-7-anon.repo
vi CentOS-Base.repo
yum clean all
yum makecache
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
补充:什么是yum-utils程序
yum-utils是yum的工具包集合,由不同的作者开发,使yum使用起来更加方便和强大。包括:debuginfo-install,find-repos-of-install, needs-restarting, package-cleanup, repoclosure, epodiff, repo-graph, repomanage, repoquery, repo-rss, reposync,: repotrack, show-installed, show-changed-rco, verifytree, yumdownloader, yum-builddep,yum-complete-transaction, yum-config-manager, yum-debug-dump, yum-debug-restore and yum-groups-manager.等
2)更新本地yum镜像源(官方镜像比较慢 不推荐,推荐阿里镜像仓库):
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast #安装前先更新yum软件包索引
3)安装docker,输入命令:
yum install -y docker-ce #或以下
yum install docker-ce docker-ce-cli containerd.io
docker-ce为社区免费版本。稍等片刻,docker即可安装成功。
Docker相关组件:docker-ce-cli、docker-ce和containerd.io的区别
概述
docker-ce-cli 是Docker的命令行客户端,用于与Docker守护程序交互;docker-ce 是Docker的社区版,提供了完整的容器化平台;而containerd.io 则是底层的容器运行时组件,用于管理容器的生命周期和镜像管理。这些组件在Docker生态系统中各自发挥着不同的作用,共同构成了强大的容器化解决方案。Docker-ce-cli
Docker-ce-cli 是Docker的命令行客户端工具(Command Line Interface)。它允许用户通过命令行界面与Docker守护程序进行交互,从而管理容器和镜像。使用docker命令,可以构建、运行、停止、删除容器,以及管理Docker镜像、网络、卷等。Docker-ce-cli 提供了与Docker守护程序通信的途径,使可以轻松地管理容器化应用。Docker-ce
Docker-ce,全称为Docker Community Edition,是Docker的社区版。它是一个完整的容器化平台,包括了Docker-ce-cli以及其他必要的组件,如Docker守护程序和基础设施管理工具。广义来说,docker-ce包含了dockerd(Docker守护进程)、docker命令行工具、docker-compose等组件;狭义上来讲,docker-ce 是与 docker containerd.io、docker-ce-cli 并列的服务组件。Docker-ce 提供了构建、发布和运行容器化应用所需的一切,使开发者能够更加高效地管理和部署应用程序。它还支持多种操作系统,包括Linux、Windows和macOS。Containerd.io
Containerd.io 是一个面向容器运行时的基本组件。它充当了Docker引擎的核心,负责管理容器的生命周期、镜像管理和存储。实际上,Docker-ce内部使用containerd.io来处理容器的创建、销毁和运行等操作。containerd.io 的设计更加注重稳定性和可扩展性,使其成为容器生态系统的关键基础。
1.3.启动docker
Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
启动docker前,一定要关闭防火墙后!!
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
通过命令启动docker:
systemctl start docker # 启动docker服务
systemctl stop docker # 停止docker服务
systemctl restart docker # 重启docker服务
然后输入命令,可以查看docker版本:
docker -v
docker version
如图:
上述已经完成了docker安装,下面需要做一些简单的配置。
1.4.配置镜像加速
docker官方镜像仓库Docker Hub 下载速度在国内是很慢的、网速较差,我们需要设置国内镜像服务,换为阿里云的参考:
参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
进入阿里云官网,搜索 容器镜像服务,选择CentOS,如下图所示
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z4zszcfk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.5 测试
我们拉取hello-wolrd,查看运行
docker version #查询docker版本
systemctl status docker.service #查询Docker服务状态
docker images #查看镜像
docker ps #查看运行的容器
docker ps -a #查看所有的容器
docker pull hello-world #拉取hello-world
docker images
docker run hello-wolrd #运行hello-world
docker inspect 容器名 #获取容器更多信息
#移除hello-wolrd
docker stop 容器ID/容器名
docker rm hello-wolrd
1.6 卸载docker
#卸载依赖
sudo yum remove docker-ce docker-ce-cli containerd.io
#删除文件夹
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
2.CentOS7安装DockerCompose
2.1.下载
Linux下需要通过命令下载:
# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
如果下载速度较慢,或者下载失败,可以使用课前资料提供的docker-compose文件:
上传到/usr/local/bin/
目录也可以。
2.2.修改文件权限
修改文件权限:
# 修改权限
chmod +x /usr/local/bin/docker-compose
2.3.Base自动补全命令
# 补全命令 将来
curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
如果这里出现错误,需要修改自己的hosts文件:
echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts
3.Docker镜像仓库
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
官网地址:https://hub.docker.com/_/registry
3.1.简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。
搭建方式比较简单,命令如下:
docker run -d \
--restart=always \
--name registry \
-p 5000:5000 \
-v registry-data:/var/lib/registry \
registry
命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像,YourIp是你的镜像仓库所在电脑的ip。
3.2.带有图形化界面版本(推荐)
使用DockerCompose部署带有图象界面的DockerRegistry【并非docker官方提供,第三方个人在registry基础上开发,故使用DockerCompose将两者组合部署】,命令如下:
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=传智教育私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
浏览器访问 http://192.168.150.101:8080
3.3.配置Docker信任地址
我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.150.101:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
参考 黑马程序员相关视频及笔记