文章目录
- docker产生的原因
- 传统虚拟机
- 容器化技术
- docker组成
- 安装docker
- 镜像加速
- docker安装过程中遇到的问题以及解决办法
- Errors during downloading metadata for repository 'root_':
- Failed to set locale, defaulting to C.UTF-8
docker产生的原因
传统虚拟机
在不使用docker的时候,我们部署项目,是把项目(jar包)直接运行在操作系统。
缺点:
- 资源占用多
- 荣誉步骤多
- 启动慢
容器化技术
容器化技术不是模拟一个完整的操作系统。容器化技术是一种轻量级的虚拟化解决方案,用于在单个操作系统实例上运行和管理应用程序和其依赖的环境。它的核心思想是将应用程序及其所有必需的运行时环境、库和依赖项打包成一个独立的容器,这样可以保证应用在不同的计算环境中能够一致地运行,而无需考虑底层操作系统的差异。
比较docker和虚拟技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机(docker)的内核,容器是没有自己的内核,也没有虚拟我们的硬件,所以就轻便
- 每个容器时互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
docker组成
镜像:docker镜像类似于一个模板,可以通过这个模板来创建容器服务,tomcat镜像---->run---->tomcat01容器(提供服务)
容器:docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建。有启动、停止、删除、基本命令
仓库:仓库存放镜像,仓库分为贡藕仓库和私有仓库
安装docker
前提:如果你的服务器上,安装过docker,需要把docker先卸载,然后再进行安装
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
正式安装
- 安装需要的安装包
yum install -y yum-utils
这个命令是用于在CentOS或Red Hat Linux系统上安装"yum-utils"软件包并自动解决依赖关系。"yum-utils"是一个扩展了Yum软件包管理器的工具集,提供了一些额外的功能,例如清理缓存、安装debug信息包、查找软件包提供的文件等。通过执行这个命令,你可以确保系统中安装了"yum-utils"软件包,并且会自动处理相关的依赖关系,使得这些额外的功能可以在系统中正常使用。
- 置仓库镜像(阿里云镜像),这里目前理解的是:使用docker拉取镜像的时候,就会去阿里云仓库中去拉取
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum
# centos 7
sudo yum makecache fast
# CentOS 8没有fast这个命令
sudo yum makecache
- 安装docker相关社区,docker-ce社区版,ee是企业版
yum install docker-ce docker-ce-cli containerd.io
- 启动docker
sudo systemctl start docker
- 查看是否安装成功
docker version
这里可以拉取hello-world镜像看是否可以拉取下来
docker run hello-world
如果提示:
[root@hcss-ecs-79a6 yum.repos.d]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Retrying in 1 second
docker: error pulling image configuration: download failed after attempts=6: dial tcp 157.240.20.8:443: i/o timeout.
See 'docker run --help'.
# 这个错误说明:取阿里云上拉取镜像超时,这个时候可以做一个镜像加速
这个错误说明:取阿里云上拉取镜像超时,这个时候可以做一个镜像加速
镜像加速
创建目录
mkdir -p /etc/docker
使用命令
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://7qyk8phi.mirror.aliyuncs.com"]
}
EOF
成功之后会提示
重启服务
sudo systemctl daemon-reload
重启docker
sudo systemctl restart docker
这个时候再去拉取hello-world的镜像就比较快
docker安装过程中遇到的问题以及解决办法
Errors during downloading metadata for repository ‘root_’:
描述:
Failed to set locale, defaulting to C.UTF-8
Docker CE Stable - x86_64 40 kB/s | 3.5 kB 00:00
created by dnf config-manager from file:///root/ 0.0 B/s | 0 B 00:00
Errors during downloading metadata for repository 'root_':
- Curl error (37): Couldn't read a file:// file for file:///root/repodata/repomd.xml [Couldn't open file /root/repodata/repomd.xml]
Error: Failed to download metadata for repo 'root_': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
解决办法:找到 /etc/yum.repos.d 目录下的文件 root_.repo 打开后 ,将 enabled=1 修改为 enabled=0 保存变更内容就可以正常安装了
Failed to set locale, defaulting to C.UTF-8
解决办法:
执行命令:dnf install langpacks-en glibc-all-langpacks -y
说明:如果这个命令安装不上的话,是因为第一个问题引起