首页 > 其他分享 >Docker(一):Docker简介及安装

Docker(一):Docker简介及安装

时间:2024-11-01 17:16:16浏览次数:5  
标签:容器 简介 虚拟机 ce Docker 安装 docker

目录

1 Docker简介

在了解docker之前,先介绍几个常用的官方网站:
docker官网:https://docs.docker.com/
Docker的github地址:https://github.com/moby/moby

Dockerhub官网
https://registry-1.docker.io

如果docker官方registry拉取镜像速度很慢,可以尝试daocloud提供的加速器服务
https://dashboard.daocloud.io/mirror

1.1 容器跟虚拟机的区别

1、虚拟机是什么

虚拟机(Virtual Machines,简称VMs),虚拟机是一种模拟计算机系统的软件实现,它可以在物理服务器上模拟出多个独立的计算机环境。每个虚拟机都运行着完整的操作系统(如Windows、Linux等),并且可以运行任何为该操作系统设计的应用程序。
理解虚拟机的关键在于:

  • 虚拟机提供了与物理机相似的计算环境,但它是虚拟的。
  • 每个虚拟机都是独立的,拥有自己的操作系统、CPU、内存、存储和网络接口。
  • 虚拟机之间是完全隔离的,一个虚拟机的任何操作都不会影响到其他虚拟机。
  • 虚拟机提供了强大的灵活性和安全性,但相比容器,它们的启动和运行需要更多的时间和资源。

2、容器是什么

容器(Container)是一种轻量级的虚拟化技术,它允许在单个操作系统实例上运行多个隔离的应用程序。与虚拟机不同,容器共享宿主操作系统的内核,但拥有自己的文件系统、进程空间和网络接口。
理解容器的关键在于:

  • 容器是轻量级的,因为它们不需要完整的操作系统,启动速度快,资源占用少。
  • 容器提供了应用级别的隔离,而不是操作系统级别的隔离。
  • 容器镜像包含了运行应用所需的所有依赖和配置,使得部署和复制变得快速和一致。
  • 容器适合于微服务架构和快速迭代的开发环境,但它们通常不提供虚拟机那样的完全隔离。

可以将虚拟机想象成完整的房子,每个虚拟机都有自己的墙壁、地板、家具(操作系统和应用程序)等,它们是独立的,互不影响。而容器则像是公寓楼中的不同公寓,它们共享同一栋楼的基础结构(操作系统内核),但每个公寓内部有自己的房间布局(文件系统和应用程序)。
在实际应用中,选择虚拟机还是容器取决于自己的需求。如果需要运行不同操作系统的应用,或者需要完全的隔离和安全保障,虚拟机可能是更好的选择。如果追求快速部署、资源高效和易于管理,容器可能更适合。

3、容器和虚拟机的区别

容器(Containers)和虚拟机(Virtual Machines,简称VMs)都是现代计算环境中常用的技术,它们提供了在单个物理服务器上运行多个应用或服务的能力。尽管它们的目标相似,但它们在实现方式、性能和使用场景上有着显著的区别。

容器(Containers):

  • 1.轻量级:容器直接运行在宿主操作系统上,共享宿主的内核,因此启动速度快,资源占用小。
  • 2.隔离性:容器提供了应用级别的隔离,每个容器都有自己的文件系统、进程空间和网络接口,但它们之间是相互独立的。
  • 3.快速部署:由于容器镜像包含了运行应用所需的所有依赖和配置,因此可以快速地部署和复制容器环境。
  • 4.资源占用:容器通常比虚拟机更节省资源,因为它们不需要额外的操作系统和虚拟硬件。
  • 5.可移植性:容器的可移植性较好,可以在不同的平台和环境中保持一致性。
  • 6.性能:容器的性能接近原生应用,因为它们直接运行在宿主机的硬件上,没有虚拟化层的开销。

虚拟机(Virtual Machines):

  • 1.完全隔离::虚拟机提供了操作系统级别的隔离,每个虚拟机都有自己的操作系统、应用程序和虚拟硬件。
  • 2.安全性:虚拟机提供了更强的安全性,因为它们之间的隔离更加彻底,即使一个虚拟机出现问题,也不会影响到其他虚拟机。
  • 3.资源分配:虚拟机可以分配独立的资源(CPU、内存、存储等),并且资源分配更加灵活。
  • 4.启动时间:虚拟机的启动和运行速度通常比容器慢,因为它们需要加载完整的操作系统。
  • 5.兼容性:虚拟机可以运行不同的操作系统,包括与宿主机不同的操作系统。
  • 6.性能开销:虚拟机由于虚拟化层的存在,通常会有更高的性能开销。

容器和虚拟机各有优势和适用场景。容器适合于微服务架构、持续集成/持续部署(CI/CD)和快速扩展的应用场景,而虚拟机则更适合于需要完全隔离环境、运行不同操作系统或需要更多资源控制的场景。选择哪种技术取决于具体的应用需求、性能要求和安全考虑。

1.2 为什么要学习容器

在传统的生产环境中,一个Java 代码,需要编译打包,会打包成 war包或者jar包,然后安装环境并启动成功,就可以对外提供服务了(能正常访问页面,做操作)
没有用容器之前通常会出现如下问题:

  • 1.开发环境没问题,测试环境报错---->排查后发现是启动脚本里jdk版本跟代码要求的版本不匹配
  • 2.测试环境没问题,生产环境报错 -->排查发现是tomcat版本和jdk版本不匹配。

在实际中,开发、运维、测试的环境各负责人不同,有可能服务在开发环境正常运行,但是在测试环境就不行。排查之后发现是环境的问题,如:jdk版本和实际代码中的版本不一致。

如果使用容器,会把 应用程序、所需的环境、相关依赖等整体进行打包成一个镜像。这个打出来的包叫做镜像。 镜像运行时叫做容器。使用镜像可以很方便的做迁移,备份,存储,交付。

打包之后的镜像有这样的特点:

  • 1.环境的强一致性。docker镜像提供了除内核外完成的运行时环境,保证其他使用人员,能完整复现应用运行时环境。不会出现“环境不一致导致报错“这种情况。
  • 2.迁移方便,持续交付和部署。一次打包,到处运行。

1.3 Docker 是什么

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在GitHub 上进行维护。

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何支持docker的机器上运行。容器是完全使用沙箱机制,相互之间不会有任何接口调用。
Docker logo:
在这里插入图片描述

Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被装在集装箱里,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送蔬菜的船和专门运送货物的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
docker就是类似的理念。云计算就好比大货轮。docker就是集装箱。
docker有两种版本:docker-ce:社区版 和 docker-ee: 商业版(多用于没有技术人员)

docker的特点:

  • 优点:
    • 1)快:运行时的性能快,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
    • 2)敏捷:像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上布署像点个按钮一样简单。
    • 3)灵活:将应用和系统“容器化”,不添加额外的操作系统
    • 4)轻量:在一台服务器上可以布署100~1000个Containers容器。
    • 5)便宜:开源的,免费的,低成本的。
  • 缺点:
    • 所有容器共用linux kernel资源,资源能否实现最大限度利用是不确定的,所以在安全上也会存在漏洞(对于这种情况可以使用扫描软件进行漏洞扫描等)

2 Docker安装

2.1 安装docker-centos7

环境:centos7.9
IP:192.168.216.10

1、环境初始化

# 设置主机名
hostnamectl set-hostname master 

#### 关闭防火墙
systemctl stop firewalld && systemctl disable firewalld

#### 关闭selinux
# 临时关闭
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 注意:修改selinux配置文件之后,重启机器,selinux才能永久生效
# 重启后查看,显示disabled则表示关闭成功
getenforce



#### 配置时间同步,也可以使用ntpdate命令来进行时间同步
yum install chrony -y
## 修改配置文件
cat /etc/chrony.conf
# 新加
allow 192.168.0.0/16
local stratum 10


systemctl restart chrony.service
systemctl enable chrony.service
systemctl status chronyd.service

### ntpdate时间同步
# yum install -y ntp ntpdate
# ntpdate cn.pool.ntp.org 
# 编写计划任务
crontab -e 
* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org
# 重启crond服务使配置生效:systemctl restart crond


##配置时区
timedatectl set-timezone Asia/Shanghai


#### 安装基础软件包
yum install -y  wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack 

2、安装docker-ce

此处使用阿里源进行安装

# 1、安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 2、添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 3、
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 4、更新并安装Docker-CE,此处安装的是最新版本的docker-ce
yum makecache fast
yum -y install docker-ce
# 5、开启Docker服务,并设置开机自启动
systemctl start docker.service && systemctl enable docker.service
# 查看docker的状态,正常状态显示在下图
systemctl status docker.service
# 查看docker版本
docker version

# 注意:
# 官方软件源默认启用了最新的软件,可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# 1、查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# 2、安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# yum -y install docker-ce-[VERSION]

显示如下表示正常启动:
在这里插入图片描述

在这里插入图片描述

3、配置docker镜像加速器

登陆阿里云镜像仓库:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
如果没有开通,可开通阿里云的镜像服务

在这里插入图片描述直接进行粘贴就可以,也可以使用下面的配置

mkdir -p /etc/docker
cat >> /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://e9v5y0sc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}
EOF

# 使配置生效
systemctl daemon-reload
systemctl restart docker
systemctl status docker

下面是常用的镜像加速列表:(不过此处需要注意的是:自从七月docker hub无法登录之后,很多镜像加速站也失效了,下方也可能已经失效了)
在这里插入图片描述

2.2 安装docker-ubuntu22.04

1、安装

以下这种方式适用于服务器可以联通到 docker 官方地址。如果无法连到官方,可以使用国内源进行安装,参考下面的阿里源安装

# 切换到 root 用户安装
sudo -i

# 更新
sudo apt update

# 安装必要的证书并允许 apt 包管理器使用以下命令通过 HTTPS 使用存储库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# 说明:
# apt-transport-https:允许APT通过安全的HTTPS连接下载软件包
# ca-certificates:包含了一系列的SSL/TLS证书,用于验证远程服务器的身份
# curl:用于获取或发送数据到服务器。它支持多种协议,包括HTTP、HTTPS、FTP等。curl常用于自动化脚本中,进行文件上传下载、API调用等任务
# software-properties-common:包含管理软件包仓库和版本管理的工具
# gnupg:提供了数据加密和解密的工具
# lsb-release:提供了查询Linux标准基础(Linux Standard Base)版本信息的工具。

# 运行下列命令添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加 Docker 官方库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新 Ubuntu 源列表:
sudo apt update

# 安装指定版本的docker
# 检查可以安装的docker版本库
apt-cache madison docker-ce
###########
 docker-ce | 5:26.0.0-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:25.0.5-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages


# 挑选上面列表中的任何版本进行安装
# 在安装过程中,会出现弹窗,可以直接选择“OK”,后续会进行介绍
sudo apt install docker-ce=5:20.10.16~3-0~ubuntu-jammy docker-ce-cli=5:20.10.16~3-0~ubuntu-jammy containerd.io -yq
# 也可以直接安装最新版本
# sudo apt install docker-ce

# 这里需要注意的是:Ubuntu系统和CentOS系统不同,Ubuntu系统安装软件之后会默认启动
# 查看docker是否运行
systemctl status docker

# 查看版本
docker version
###############
Client: Docker Engine - Community
 Version:           20.10.16
 API version:       1.41
 Go version:        go1.17.10
 Git commit:        aa7e414
 Built:             Thu May 12 09:18:18 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.10
  Git commit:       f756502
  Built:            Thu May 12 09:16:22 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.28
  GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

2、添加镜像加速

添加方式同上面centos,注意这里记录了几个目前还可以用的镜像加速地址

mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF

# 使配置生效
systemctl daemon-reload

systemctl restart docker
systemctl status docker

 ## 最新镜像加速地址
 ### 2024-07-22
 mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  
"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerpull.com","https://atomhub.openatom.cn","https://docker.1panel.live","https://dockerhub.jobcher.com","https://hub.rat.dev","https://docker.registry.cyou","https://docker.awsl9527.cn","https://do.nark.eu.org/","https://docker.ckyl.me","https://hub.uuuadc.top","https://docker.chenby.cn","https://uyah70su.mirror.aliyuncs.com"]
}
EOF

3、使用阿里源安装

如果无法连到官方,可以使用国内源进行安装,这里以阿里源为例:

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
# sudo apt-get -y install docker-ce

# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

标签:容器,简介,虚拟机,ce,Docker,安装,docker
From: https://blog.csdn.net/dl_11/article/details/142819719

相关文章

  • Navicat 17下载与安装
    1、安装包 Navicat17:链接:https://pan.quark.cn/s/c75e892c4705提取码:YvyFNavicat16:链接:https://pan.quark.cn/s/63c07b20ea7b提取码:B9ij2、安装教程(这里以安装Navicat17为例)1)       如之前已安装的需卸载当前Navicat,如未安装,直接双击无限试用Navicat.bat脚......
  • gem5 学习一 —— gem5简介
    前言最近由于工作需要,我开始学习[gem5](gem5:Thegem5simulatorsystem)模拟器。gem5模拟器是一款模块化的计算机系统架构平台,可用于研究系统级架构、处理器微架构。gem5是一个开源平台,最初是为学术界的计算机体系结构研究而构想的,目前已经发展为学术界、工业研究和教学中......
  • Pycharm 2024安装包下载与安装
    PyCharm是一种PythonIDE(IntegratedDevelopmentEnvironment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具1、安装包  Pycharm2024:链接:https://pan.quark.cn/s/4b161663b678提取码:2Suz2、安装教程(以安装Pycharm2024为例)1)     ......
  • Adobe After Effects各版本安装包下载与安装
    1、安装包  我用夸克网盘分享了AfterEffects2024:链接:https://pan.quark.cn/s/fac88adbac44提取码:9ZMWAfterEffects2023:链接:https://pan.quark.cn/s/d41a0a447b93提取码:4pwMAfterEffects2022:链接:https://pan.quark.cn/s/0070a59da58d提取码:Eij1AfterEffect......
  • Adobe InDesign 各版本下载与安装
    1、安装包  我用夸克网盘分享了「AdobeInDesign2023.rar」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。链接:https://pan.quark.cn/s/526c259dad6f提取码:MfMX AdobeInDesign2022:链接:https://pan.quark.cn/s/c7ee80a21975提......
  • Adobe Photoshop 2021下载与安装
    1、安装包  2021Photoshop2021cc免安装绿色中文版:链接:https://pan.quark.cn/s/d32465740151提取码:Ln9j Photoshop2021cc中文完整版:链接:https://pan.quark.cn/s/daf54ca61e53提取码:MF6U Adobephotoshopcc2019中文完整版免激活:链接:https://pan.quark.cn/s......
  • TortoiseSVN 下载与安装、汉化
    1、安装包下载  TortoiseSVN-1.13.1.28686-x64-zh_CN:链接:https://pan.quark.cn/s/bd29655089c9提取码:Qtu3 2、安装教程1)       双击安装,弹窗安装对话框 2)       点击Next 3)       点击Next 4)       点击Install安......
  • .NET Framework 3.5/4.0/4.5/4.6版本离线版安装包下载
    1、安装包资源下载.NETFramework各版本:链接:https://pan.quark.cn/s/c68076e7865a提取码:tiN7  2、安装教程(.NETFramework4.7为例)1)       安装包双击打开 2)       勾选我同意,点击安装 3)       安装成功,点击关闭,查看系统设置,应用......
  • 浅析Dockerhub API:如何优雅地从dockerhub偷rootfs镜像
    成品:https://github.com/Moe-hacker/docker_image_puller前言:八月初的时候,咱无聊去扒了下dockerhub的接口,想通过网络请求直接从dockerhub偷镜像。然后写完才想起来dockkerhub在国内是被墙的,似乎这么一个功能用处也不大。。。。。然后咱就去旅游了,连项目Readme都没写(逃)。至于......
  • 诛仙2:为爱成神|单机安装教程|虚拟机一键端|GM工具包
    今天给大家带来一款单机游戏的架设:诛仙2:为爱成神。游戏版本:v2.2.8只适用于单机娱乐,此教程是本人亲测所写,踩坑无数,如果你是小白跟着教程走也是可以搭建成功     亲测视频演示https://githubs.xyz/show/291.mp4 游戏安装步骤此游戏架设需要安装虚拟机......