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

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

相关推荐
桂月二二4 小时前
Java与容器化:如何使用Docker和Kubernetes优化Java应用的部署
java·docker·kubernetes
Smile丶凉轩7 小时前
Docker核心技术和实现原理
运维·docker·容器
清风细雨_林木木7 小时前
Docker使用——国内Docker的安装办法
运维·docker·容器
dessler8 小时前
Docker-Dockerfile讲解(三)
linux·运维·docker
一休哥助手8 小时前
深入理解 Docker 网桥配置与网络管理
docker·容器·eureka
PittDing9 小时前
【更新】Docker新手入门教程2:在Windows系统通过compose创建多个mysql镜像并配置应用
windows·mysql·docker
Mitch31110 小时前
【漏洞复现】CVE-2014-3120 & CVE-2015-1427 Expression Injection
运维·web安全·elasticsearch·docker·apache
m0_7482510811 小时前
docker安装nginx,docker部署vue前端,以及docker部署java的jar部署
java·前端·docker
m0_7482402512 小时前
docker--压缩镜像和加载镜像
java·docker·eureka
颜淡慕潇13 小时前
【K8S问题系列 | 20 】K8S如何删除异常对象(Pod、Namespace、PV、PVC)
后端·云原生·容器·kubernetes