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

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

相关推荐
川石课堂软件测试38 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
昌sit!7 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
追风林8 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
A ?Charis9 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
城南vision10 小时前
Docker学习—Docker核心概念总结
java·学习·docker
wclass-zhengge10 小时前
Docker篇(Docker Compose)
运维·docker·容器
北漂IT民工_程序员_ZG10 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
梦魇梦狸º13 小时前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
鬼才血脉14 小时前
docker+mysql配置
mysql·adb·docker
詹姆斯爱研究Java14 小时前
Docker 的基本概念和优势
docker