2.核心概念与安装配置

核心概念与安装配置

文章目录

1、核心概念

  • 镜像(image)

    Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

  • 容器(container)

    Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例

    容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

  • 仓库(repository)

    仓库(Repository)是集中存放镜像文件的场所。

Docker整体架构及底层通信原理

Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。

Docker 运行的基本流程为:

  1. 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。
  2. Docker Daemon 作为Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的请求。
  3. Docker Engine 执行 Docker内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。
  4. Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graph driver将下载镜像以Graph的形式存储。
  5. 当需要为 Docker创建网络环境时,通过网络管理驱动 Network driver 创建并配置 Docker 容器网络环境。
  6. 当需要限制 Docker容器运行资源或执行用户指令等操作时,则通过 Exec driver来完成。
  7. Libcontainer是一项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。

2、安装Docker

Centos安装Docker引擎

https://docs.docker.com/engine/install/centos/

  1. 确认Centos版本

    Docker 目前支持 CentOS 7 及以后的版本, 内核版本至少是3.10.

    查看操作系统版本:

    bash 复制代码
    cat /etc/redhat-release

    查看内核版本:

    bash 复制代码
    uname -r
  2. 卸载旧版本

    bash 复制代码
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
  3. yum安装gcc相关

    bash 复制代码
    yum install -y gcc
    yum install -y gcc-c++
  4. 安装额外的软件包

    bash 复制代码
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  5. 设置stable镜像仓库,添加Docker文档版本的yum源

    官方的yum源安装docker比较慢, 我们配置国内比较快的yum源(阿里云)

    bash 复制代码
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  6. 更新yum软件包索引

    bash 复制代码
    yum makecache fast
  7. 安装Docker CE

    bash 复制代码
     sudo yum install docker-ce docker-ce-cli containerd.io
  8. 启动Docker

    bash 复制代码
    systemctl start docker
  9. 测试

    复制代码
    docker version
    docker run hello-world
  10. 卸载

    bash 复制代码
    systemctl stop docker
    yum remove docker-ce docker-ce-cli containerd.io
    rm -rf /var/lib/docker
    rm -rf /var/lib/containerd

阿里云镜像加速

通过自己账号进入阿里云平台的容器镜像服务,进入镜像工具下的镜像加速器,获取个人的加速器地址。

按照操作文档进行配置后重启docker。修改daemon配置文件/etc/docker/daemon.json来使用加速器

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://*****.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

检验安装

复制代码
docker run hello-world

Docker run的过程

3、Docker相关命令

  • 启动docker

    bash 复制代码
    systemctl start docker
  • 停止docker

    bash 复制代码
    systemctl stop docker
  • 启重启docker

    bash 复制代码
    systemctl restart docker
  • 查看docker状态

    bash 复制代码
    systemctl status docker
  • 开机启动docker

    bash 复制代码
    systemctl enable docker
  • 查看docker概要信息

    bash 复制代码
    docker info
  • 查看docker总体帮助文档

    bash 复制代码
    docker --help
  • 查看docker命令帮助文档

    bash 复制代码
    docker 具体命令 --help
相关推荐
小彭律师7 分钟前
Docker/K8s部署MySQL的创新实践与优化技巧大纲
mysql·docker·kubernetes
lastHertz9 分钟前
Docker 占用导致 C 盘空间不足的排查与解决
运维·docker·容器
专家大圣10 分钟前
Docker+Redis监控新方案:cpolar让远程管理“零配置”
网络·redis·docker·容器·内网穿透
chen_note4 小时前
Dockerfile及其部署镜像步骤
docker·容器·镜像·dockerfile
杨浦老苏10 小时前
开源云文件存储服务器MyDrive
docker·群晖·网盘
PellyKoo10 小时前
Docker容器中中文文件名显示乱码问题完美解决方案
运维·docker·容器
无妄无望10 小时前
在没有网络的环境下安装包pymysql
学习·docker
奥尔特星云大使11 小时前
Docker 拉取 MySQL 5.7 镜像、启动容器并进入 MySQL
数据库·mysql·docker·容器
big男孩11 小时前
Docker使用环境变量的整理
docker
安卓开发者11 小时前
Docker与Nginx:现代Web部署的完美二重奏
前端·nginx·docker