Docker ( 一 ) 基本概念及安装

1.Docker是什么?

Docker 是一个开源的应用容器引擎, 可以简化理解实现应用与运行环境分离.

Docker 其中包括,镜像、容器、仓库等概念,目的就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的产品(可以是 web 应用或者数据库应用)及其环境能够做到“一次封装,到处运行”。

Docker实际上就相当于一个封闭的沙盒或者是集装箱,它可以把不同的应用全都放在它的集装箱里面,并且以后有需要的时候,可以直接把集装箱搬到其他平台或者服务器上,可以跨平台,跨服务器,实现应用程序跨平台间的无缝衔接. 实现容器虚拟化技术,随用随搬

一句话,Docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

是dotCloud公司开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于 Go 语言 并遵从 Apache2.0 协议开源。

GitHub地址:https://github.com/moby/moby

docker官网:https://www.docker.com
docker中文库:https://www.docker.org.cn/

2017年初,docker公司将原先的docker开源项目改名为moby。
moby是集成了原先的docker项目,是社区维护的开源项目,谁都可以在moby的基础打造自己的容器产品。
docker-ce 是docker公司维护的开源项目,是一个基于moby项目的免费容器产品。
docker-ee 是docker公司维护的闭源产品,是docker公司的商业昌平。

2.Docker架构基本概念

Docker 包括三个基本概念:

2.1.镜像(Image)

就相当于是一个 root 文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)

比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。

Docker镜像是用来启动容器的,也用来创建新的容器,类似于虚拟机的快照。

镜像不包含任何动态数据,其内容在构建之后也不会被改变,在Docker里可以创建镜像,也可以从第三方的网站上下载别人已经做好的镜像来使用

2.2.容器(Container)

运行程序员开发的应用程序的

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。一个Docker镜像可以实例化出来多个容器,而每一个容器之间是独立运行的,没有任何依赖
Docker镜像是不能运行的,是静态的,而Docker容器是运行的,是动态的,可以将Docker容器想像成一个简化版的操作系统和一些核心基础的应用。每个容器运行一个独立的应用程序。

2.3.仓库(Repository)

仓库可看成一个代码控制中心,用来保存镜像。

Docker仓库提供一个注册服务器,用于存储多个仓库,而仓库是用来存储镜像位置的

我们自已创建了一个镜像之后,可以使用push命令将镜像文件上传到仓库中,后期如果在其它服务器上需要使用镜像,就可以从仓库上下载过来并使用

总结: 说白了镜像就等于一个centos系统的安装程序,一个镜像只是一个只读环境而已,这个镜像提供的是基础的运行环境,而你在Centos7系统中安装的应用,比如Redis,Mysql这些应用就相当于一个容器,这些容器都是单独可运行的,仓库的概念就相当于在Centos7系统中下载的所有应用都被收集到同一个仓库里了,比如Maven仓库

3.安装Docker

3.0.yum 准备

3.0.1.升级 yum

更新安装源, 系统太旧了, 可能安装的版本也比较低, 可以更新一下安装源后再查看可安装版本

# 清理 yum 缓存
yum clean all

# yum makecache就是把服务器的包信息下载到本地电脑缓存起来
# 配合yum -C search xxx使用
# 不用上网检索就能查找软件信息
yum makecache

# 升级 yum
yum update -y

3.0.2.安装工具包

安装 yum-utils 软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。

yum install -y yum-utils

devicemapper驱动依赖的

yum install -y device-mapper-persistent-data lvm2

3.1.卸载旧版本

3.1.1.查看安装过docker

yum list installed | grep docker

在这里插入图片描述

3.1.2.卸载旧版本docker

卸载docker

yum remove docker*	

也可以用详细列表

yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine

删除镜像/容器等, /var/lib/docker/应该修改成具体的位置

rm -rf /var/lib/docker/	

3.2.安装docker

3.2.1.设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.2.2.列出可安装的docker版本

从高到低排序

yum list docker-ce --showduplicates | sort -r		

在这里插入图片描述

3.2.3.安装docker

可以使用下列指令

yum -y install docker-ce	# 安装最新版本的docker
或者
yum -y install docker-ce-20.10.9	#安装指定版本

推荐同时安装

yum -y install docker-ce docker-ce-cli containerd.io

docker-ce - Docker 守护进程,这是完成所有管理工作的部分,在 Linux 上需要另外两个

docker-ce-cli - 用于控制守护进程的 CLI 工具,如果您想控制远程 Docker 守护进程,可以自行安装它们

containerd.io - 与 OS API 接口的守护进程(在本例中为 LXC - Linux Containers),本质上将 Docker 与 OS 分离,还为非 Docker 容器管理器提供容器服务

3.2.4.验证安装是否成功

查看版本

docker version 

在这里插入图片描述

3.3.启动并设置开机启动

systemctl start docker		# 启动
systemctl enable docker		# 设置开机启动
systemctl status docker		# 查看docker启动状态

3.3.1.测试docker信息

通过 docker info 查看信息

docker info

得到信息

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
  scan: Docker Scan (Docker Inc., v0.23.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.22
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9ba4b250366a5ddde94bb7c9d1def331423aa323
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-693.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.781GiB
 Name: localhost.localdomain
 ID: RNFX:T2T4:CW3J:6HR5:6FFD:WCKK:L2BM:HZ3P:BPIZ:M6G6:M7QW:PSFF
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

4.Docker 镜像加速

4.1.设置镜像

这个步骤不是必须, 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<你的ID>.mirror.aliyuncs.com
  • 七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址

下面以阿里云的镜像加速为例讲解

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述

执行上图中红圈中的命令即可.

命令的意思就是在/etc/docker目录内

创建一个名字未daemon.json的文件,

并写入{“registry-mirrors”:[“https://xxxx.mirror.aliyuncs.com”]},

最后两句命令是重新启动服务

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://你的ID.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4.2.查看操作结果

docker info		#查看docker信息

查看docker信息,

Docker Root Dir : docker仓库的地址。

在最后三行能看到镜像加速器配置是否成功

 ID: ZBWC:6M5U:NQXD:RMYF:IMU7:AAHV:MWIS:STZE:5QD5:HII2:FU7K:VWQW
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://你的ID.mirror.aliyuncs.com/
 Live Restore Enabled: false
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值