Docker: The Definitive Guide – Step by Step Beginner’s

作者:禅与计算机程序设计艺术

1.简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的镜像中,然后发布到任何流行的Linux或Windows服务器上,也可以实现虚拟化。基于容器的解决方案不但能够提高服务的分发和部署效率,更重要的是它将应用程序环境和运行时依赖隔离开来,使得应用的维护变得简单又安全。本文介绍了如何安装配置docker以及使用一些docker命令。

2.基本概念术语说明

2.1 什么是Docker?

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的镜像中,然后发布到任何流行的Linux或Windows服务器上,也可以实现虚拟化。基于容器的解决方案不但能够提高服务的分发和部署效率,更重要的是它将应用程序环境和运行时依赖隔离开来,使得应用的维护变得简单又安全。

2.2 为什么要用Docker?

很多人都在使用Docker,但是为什么要用?主要有以下几点原因:

  1. 环境一致性:开发人员使用统一的环境部署代码,确保了所有成员在运行相同的代码和环境;而使用Docker,不同的开发人员可以共享同一个环境,节约了硬件成本,提高了工作效率。
  2. 自动化运维:通过自动化部署容器,将应用快速部署到生产环境,大大加快了软件交付周期。同时,通过Docker Swarm模式,可以进行弹性伸缩,满足业务需求不断增长的需要。
  3. 微服务架构:微服务架构下,每个服务都可以作为一个独立的容器,更好的管理资源和分配限额,降低单个服务的耦合性,提升了系统的可扩展性和弹性。
  4. 版本控制:由于每一个容器都是一个隔离的文件系统,可以把代码和依赖项进行版本控制,方便部署和回滚。
  5. 可移植性:Docker可以在各种主流Linux发行版上运行,并提供一个统一的接口。使得应用部署环境的一致性得到保证。

2.3 Docker的组成

Docker由三个主要组件构成:

  1. Docker客户端:用户用来执行Docker命令行指令的工具。
  2. Docker主机(或者服务器):运行着Docker守护进程和用户应用容器的机器。
  3. Docker仓库:存放镜像文件的地方,类似于Docker Hub。

2.4 Dockerfile

Dockerfile是用来定义镜像的内容文件,用来告诉Docker怎么构建镜像。每一个Dockerfile都包含一条或多条指令,告诉Docker从哪里获取基础镜像,需要添加哪些文件,以及启动容器后要运行的命令等等。这些指令构成了一个镜像的描述,可以通过Dockerfile创建多个不同的镜像。如下图所示:

2.5 Docker Image

Image是指已经编译好的、可以在本地运行的静态二进制文件。它包含了一切所需的数据和运行代码,包括代码、运行时、库、环境变量、配置文件、脚本等。

2.6 Docker Container

Container是镜像的运行实例,其内容包括镜像内所有文件及目录。一般情况下,一个镜像可以对应多个容器,每个容器可以被视为一个独立的运行环境。

2.7 Docker Registry

Registry是用于存储镜像文件的地方,类似于Docker Hub。除了官方的Registry之外,也可以自己搭建私有的Registry。

3. 安装配置Docker

3.1 在Ubuntu上安装Docker CE

(1)设置仓库

第一步,更新APT包索引:

sudo apt update

第二步,安装必要的依赖包:

sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

第三步,添加GPG密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

第四步,设置Docker的仓库:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

最后一步,更新APT包索引并安装Docker CE:

sudo apt update && sudo apt upgrade
sudo apt install docker-ce docker-ce-cli containerd.io

(2)验证安装

首先,查看Docker版本号:

sudo docker version

如果出现以下信息,则表示安装成功:

Client:
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.8
 Git commit:        20.10.7-0ubuntu1~20.04.1
 Built:             Wed Aug  4 22:52:58 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.8
  Git commit:       20.10.7-0ubuntu1~20.04.1
  Built:            Wed Aug  4 19:07:47 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.2-0ubuntu1~20.04.2
  GitCommit:        
 runc:
  Version:          1.0.0~rc95-0ubuntu1~20.04.2
  GitCommit:        

3.2 在CentOS上安装Docker CE

(1)设置仓库

第一步,配置YUM源:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第二步,安装Docker CE:

sudo yum update -y && sudo yum install -y docker-ce docker-ce-cli containerd.io

(2)验证安装

首先,查看Docker版本号:

sudo docker version

如果出现以下信息,则表示安装成功:

Client: Docker Engine - Community
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:40 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:54:58 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0-rc95
  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

3.3 配置镜像加速器

由于国内网络环境特殊,拉取Docker镜像很慢甚至无法下载,这时候可以使用国内镜像加速器提高下载速度。

目前国内主要有两个镜像加速器:

在终端输入以下命令配置镜像加速器:

# 替换$username为你的用户名,$accelerator为镜像加速器地址
echo '{"registry-mirrors": ["https://$username.mirror.aliyuncs.com", "$accelerator"]}'> /etc/docker/daemon.json

重新加载配置文件:

sudo systemctl daemon-reload && sudo systemctl restart docker

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133565976