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

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

相关推荐
问简1 天前
docker 镜像相关
运维·docker·容器
Benszen1 天前
Docker容器化技术实战指南
运维·docker·容器
Hommy881 天前
【开源剪映小助手】Docker 部署
docker·容器·开源·github·aigc
斯普信云原生组1 天前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪1 天前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人1 天前
docker compose部署kafka集群搭建
docker·容器·kafka
开心码农1号1 天前
k8s中service和ingress的区别和使用
云原生·容器·kubernetes
L1624761 天前
Kubernetes 完整学习手册(1 主多从 + 纯 YAML 部署 + 访问原理)
学习·容器·kubernetes
sbjdhjd2 天前
Docker | 核心概念科普 + 保姆级部署
linux·运维·服务器·docker·云原生·面试·eureka
摇滚侠2 天前
Vmvare 虚拟机安装 Linux CentOS 7 操作系统 一键安装 Docker 1Panel 一键安装 MySQL Redis OpenClaw
linux·docker·centos