
xiaojizhi2023
2023/03/02阅读:23主题:默认主题
docker
Docker
一、Docker 简介
容器是解决从一个计算环境移动到另一个计算环境时如何使软件可靠运行的问题的解决方案;
Docker 是一个容器化平台,它以容器的形式将应用程序及所有的依赖项打包在一起,以确保应用程序在任何环境中无缝运行。
Docker 是一个开源的应用容器引擎,基于 Go,Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。Docker 容器通过 Docker 镜像来创建;
一个容器包含了完整的运行时环境:一个应用、这个应用所需的全部依赖、类库、其他二进制文件、配置文件,它们统一被打入了一个包中;
二、Docker 架构
2.1. Containers V.S VMs
Linux NameSpace:**资源隔离(NS)**,又称为命名空间,它主要做访问隔离;
Linux Control Groups:**控制群组(CG)**,在一个系统中运行的层级制进程组,可对资源进行分配;
Union File System:**联合文件系统(UFS)**, 典型:aufs/overlayfs,分层镜像实现的基础;



2.2.三个基本概念
镜像image
:采用分层存储 UFS,并不是传统的 ISO 打包,实际上是由多层文件系统联合组成。构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变后一层上的任何改变只发生在自己这一层。因此每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
容器container
:镜像和容器的关系,像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。
仓库:
仓库相对来说就比较容易理解了,仓库(Repository)是集中存放镜像文件的场所。仓库分为公开仓库和私有仓库,目前的话,全世界最大的仓库是 Docker 官方的 Docker Hub
三、Docker 安装与使用
3.1. 安装
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-selinux
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo yum list docker-ce --showduplicates |sort -r
...
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
...
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
sudo mkdir -p /etc/docker # 配置完成重启docker服务
sudo tee >/etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["[https://my5f0mvy.mirror.aliyuncs.com](https://my5f0mvy.mirror.aliyuncs.com/)"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
Install Docker Engine on CentOS
Harbor - Harbor Installation and Configuration
3.2. 命令

作者介绍
