一.Docker简介

本教程的学习来源于https://www.bilibili.com/video/BV1og4y1q7M4

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 架构

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看着一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。

容器与镜像的关系类似于面向对象编程中的对象与类。

二.Docker安装

1.Docker前提需要

1.Docker的官网

1
https://www.docker.com/

2.Docker的帮助文档

1
https://docs.docker.com/

3.Docker的架构图

2.Docker的安装

2.1卸载旧版本的Docker

1
2
3
4
5
6
7
8
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2.2需要的安装包

1
$ sudo yum install -y yum-utils

2.3设置镜像仓库

1
2
3
4
5
6
7
8
9
#国外的,不建议使用
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

#国内的,阿里云,推荐使用
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.4安装Docker引擎

建议之前先更新yum软件包索引

$ yum makecache fast

1
$ sudo yum install docker-ce docker-ce-cli containerd.io

2.5启动Docker

1
$ sudo systemctl start docker

2.6测试Docker是否启动成功

1
$ docker version

2.7运行Hello world

1
$ sudo docker run hello-world

2.8查看下载的Docker镜像

1
$ docker images

2.9.Docker的卸载

1.卸载Docker引擎和包

1
$ sudo yum remove docker-ce docker-ce-cli containerd.io

2.删除镜像

1
$ sudo rm -rf /var/lib/docker

Docker的默认工作路径:/var/lib/docker

3.阿里云镜像加速

1.找到阿里云的镜像加速容器

2.找到镜像加速地址

3.配置使用

请使用自己的阿里云账号下的加速地址,因为每个人可能不一样

1
2
3
4
5
6
7
8
9
10
11
sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://pse4o0zi.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

4.Docker镜像运行流程

三、Docker的常用命令

帮助命令

镜像命令

容器命令