docker安装使用

文章目录

docker产生的原因

传统虚拟机

在不使用docker的时候,我们部署项目,是把项目(jar包)直接运行在操作系统。

缺点:

  1. 资源占用多
  2. 荣誉步骤多
  3. 启动慢

容器化技术

容器化技术不是模拟一个完整的操作系统。容器化技术是一种轻量级的虚拟化解决方案,用于在单个操作系统实例上运行和管理应用程序和其依赖的环境。它的核心思想是将应用程序及其所有必需的运行时环境、库和依赖项打包成一个独立的容器,这样可以保证应用在不同的计算环境中能够一致地运行,而无需考虑底层操作系统的差异。

比较docker和虚拟技术的不同:

  1. 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后再这个系统上安装和运行软件
  2. 容器内的应用直接运行在宿主机(docker)的内核,容器是没有自己的内核,也没有虚拟我们的硬件,所以就轻便
  3. 每个容器时互相隔离,每个容器内都有一个属于自己的文件系统,互不影响

docker组成

镜像:docker镜像类似于一个模板,可以通过这个模板来创建容器服务,tomcat镜像---->run---->tomcat01容器(提供服务)

容器:docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建。有启动、停止、删除、基本命令

仓库:仓库存放镜像,仓库分为贡藕仓库和私有仓库

安装docker

前提:如果你的服务器上,安装过docker,需要把docker先卸载,然后再进行安装

java 复制代码
 yum remove docker \
 					docker-client \ 
 					docker-client-latest \ 
 					docker-common \ 
 					docker-latest \ 
 					docker-latest-logrotate \ 
 					docker-logrotate \ 
 					docker-engine

正式安装

  1. 安装需要的安装包
java 复制代码
yum install -y yum-utils

这个命令是用于在CentOS或Red Hat Linux系统上安装"yum-utils"软件包并自动解决依赖关系。"yum-utils"是一个扩展了Yum软件包管理器的工具集,提供了一些额外的功能,例如清理缓存、安装debug信息包、查找软件包提供的文件等。通过执行这个命令,你可以确保系统中安装了"yum-utils"软件包,并且会自动处理相关的依赖关系,使得这些额外的功能可以在系统中正常使用。

  1. 置仓库镜像(阿里云镜像),这里目前理解的是:使用docker拉取镜像的时候,就会去阿里云仓库中去拉取
java 复制代码
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 更新yum
java 复制代码
# centos 7
sudo yum makecache fast
# CentOS 8没有fast这个命令
sudo yum makecache
  1. 安装docker相关社区,docker-ce社区版,ee是企业版
java 复制代码
yum install docker-ce docker-ce-cli containerd.io 
  1. 启动docker
java 复制代码
sudo systemctl start docker
  1. 查看是否安装成功
java 复制代码
docker version

这里可以拉取hello-world镜像看是否可以拉取下来

java 复制代码
docker run hello-world

如果提示:

java 复制代码
[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'.

# 这个错误说明:取阿里云上拉取镜像超时,这个时候可以做一个镜像加速

这个错误说明:取阿里云上拉取镜像超时,这个时候可以做一个镜像加速

镜像加速

创建目录

java 复制代码
mkdir -p /etc/docker

使用命令

java 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://7qyk8phi.mirror.aliyuncs.com"]
}
EOF

成功之后会提示

重启服务

java 复制代码
 sudo systemctl daemon-reload

重启docker

java 复制代码
sudo systemctl restart docker

这个时候再去拉取hello-world的镜像就比较快

docker安装过程中遇到的问题以及解决办法

Errors during downloading metadata for repository 'root_':

描述:

java 复制代码
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

说明:如果这个命令安装不上的话,是因为第一个问题引起

相关推荐
wuxingge3 小时前
k8s1.30.0高可用集群部署
云原生·容器·kubernetes
志凌海纳SmartX4 小时前
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
云原生·容器·kubernetes
锅总4 小时前
nacos与k8s service健康检查详解
云原生·容器·kubernetes
BUG弄潮儿4 小时前
k8s 集群安装
云原生·容器·kubernetes
意疏4 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
墨鸦_Cormorant4 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
Code_Artist5 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
颜淡慕潇6 小时前
【K8S系列】kubectl describe pod显示ImagePullBackOff,如何进一步排查?
后端·云原生·容器·kubernetes
wanmei0026 小时前
Dockerfile复制目录进入镜像里
docker
inter_peng6 小时前
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
tcp/ip·docker·eureka