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,分层镜像实现的基础;

image

image

image

2.2.三个基本概念

镜像image:采用分层存储UFS,并不是传统的ISO打包,实际上是由多层文件系统联合组成。构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变后一层上的任何改变只发生在自己这一层。因此每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉

容器container:镜像和容器的关系,像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。

仓库: 仓库相对来说就比较容易理解了,仓库(Repository)是集中存放镜像文件的场所。仓库分为公开仓库和私有仓库,目前的话,全世界最大的仓库是Docker官方的 Docker Hub

三、Docker安装与使用

3.1. 安装

镜像加速(/etc/docker/daemon.json)

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://xxxxx.mirror.aliyuncs.com](https://xxxxx.mirror.aliyuncs.com/)"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

什么是 Docker

Docker Documentation

Install Docker Engine on CentOS

Linux安装Docker完整教程

Harbor -- 搭建Docker私有仓库

Harbor - Harbor Installation and Configuration

3.2. 命令

docker

docker之Dockerfile实践

阿良的博客

Play with Docker

image

posted on 2023-04-17 23:59  anyu967  阅读(22)  评论(0)    收藏  举报