Docker入门与安装

Docker简介

Docker是一个开源的容器引擎,有助于更快速地交付应用。Docker将应用程序和基础设施隔离,并且能将基础设施当做程序一样进行管理。使用Docker,可以更快速地打包,测试以及部署应用程序。

Docker架构

图中包含的组件

  • Docker daemon(Docker守护进程)
  • Client(Docker客户端)
  • Images(Docker镜像)
    Docker镜像是一个只读模板,它包含了docker容器的说明。使用Docker镜像可以运行Docker镜像中的程序。
  • Container(容器)
    容器是镜像的可运行实例。镜像和容器的关系类似于OOP中的类和实例的关系。
  • Registry
    Docker Registry是一个集中存储与分发镜像的服务。
    一个Docker Registry可以包含多个Docker仓库,每个仓库可以包含多个镜像标签,每个标签对应一个Docker镜像。

安装Docker CE

OS requirements

要安装Docker CE,需要一个CentOS7的maintained version。不支持或测试archived versions。
必须启用centos-extras存储库。默认情况下启用此存储库,但如果您禁用了它,则需要重新启用它。
建议使用overlay2存储驱动程序。

卸载旧版本

Docker的旧版本称为Docker或Docker-engine。如果安装了这些文件,请卸载它们以及相关的依赖项。如果yum报告说没有安装这些包,也没有关系。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

可以使用yum list installed | grep docker列出已安装的docker相关项。

使用存储库安装Docker CE

在第一次在新主机上安装Docker CE之前,需要设置Docker存储库。然后,您可以从存储库安装和更新Docker。

SET UP THE REPOSITORY

  1. 安装所需要的包。yum-utils提供yum-config-manager实用程序,设备映射器存储驱动程序需要device-mapper-persistent-data和lvm2。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 使用以下命令设置stable repository。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

INSTALL DOCKER CE

  1. 安装最新版本的Docker CE和containerd,或进入下一步安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
  1. 要安装特定版本的Docker CE,请在repo中列出可用版本,然后选择并安装。

a. 列出并分类repositories中可用的版本。这个例子按照版本号从高到低排序:

yum list docker-ce --showduplicates | sort -r

返回的列表取决于启用了哪些存储库,并且特定于CentOS版本
b. 通过其完全限定的包名安装特定的版本

sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io    
  1. 启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
  1. 通过运行hello-world映像,验证Docker CE是否正确安装。
docker run hello-world

错误整理

解决Docker:Error response from daemon:...: net/http: TLS handshake timeout.

问题:

# docker run hello-world
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout.

分析:
docker默认镜像拉取地址为国外仓库下载速度较慢,则会报错“net/http: TLS handshake timeout”。
解决方法:

  1. 进入阿里云镜像加速器页面 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
  2. 配置镜像加速器,您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://u5kqywr6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
posted @ 2019-07-03 20:23  DeqiangLee  阅读(161)  评论(0编辑  收藏  举报