zoukankan      html  css  js  c++  java
  • Docker实践之01-入门介绍

    目录

    一.Docker概述

    Docker是利用Linux内核技术实现的操作系统层级的虚拟化。
    Docker是什么

    Docker三大组件:镜像,容器,仓库。

    镜像

    镜像是由多层存储所构成,下载也是一层层的去下载,并非单一文件。
    镜像的基础是底层AUFS的支持.

    容器

    使用镜像运行的实例,镜像与容器的关系类比Java中类与对象的关系。

    仓库

    https://docs.docker.com/registry/ 介绍什么是Docker Registry及如何使用

    1.常用的Docker镜像仓库公开服务

    2.国内镜像加速器和镜像公开服务
    国内云服务上提供的针对Docker Hub的镜像服务,被称为加速器。
    使用加速器会直接从国内的地址下载Docker Hub的镜像,比直接从Docker Hub下载速度会提高很多。国内的加速器包括:

    国内也有一些云服务商提供类似于Docker Hub的公开服务:

    二.安装Docker

    1.在CentOS上安装Docker

    Docker CE支持64位版本CentOS 7,并且要求内核版本不低于3.10。
    OS:CentOS Linux release 7.4.1708 (Core)
    内核版本:Linux version 3.10.0-693.el7.x86_64

    (1)在正式开始安装之前,先添加国内的yum源(直接使用官方源,下载非常慢):

    $ wget https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    $ mv docker-ce.repo /etc/yum.repos.d/
    $ yum makecache fast #更新yum源缓存
    

    (2)安装依赖:

    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    

    (3)安装docker ce(docker社区版):

    $ sudo yum install docker-ce
    

    2.在Ubuntu上安装Docker

    使用APT安装:由于apt源使用HTTPS以确保软件下载过程中不被篡改。因此,我们首先需要添加使用HTTPS传输的软件包以及CA证书。

    $ sudo apt-get update
    $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    

    鉴于网络问题,使用国内源下载(如下使用中国科学技术大学的镜像源)。
    (1)为了确认所下载软件包的合法性,需要添加软件源的GPG密钥。

    $ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    

    (2)向source.list中添加Docker软件源

    $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    

    以上命令会添加稳定版本的Docker CE APT镜像源,如果需要最新或者测试版本的Docker CE,请将stable改为edge或者test。从Docker 17.06开始,edge、test版本的APT镜像源也会包含稳定版本的Docker。

    (3)安装Docker CE

    $ sudo apt-get update
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    

    特别地,如果使用上述方式无法安装Docker,可以使用如下方式安装。

    ## 这样安装的docker版本可能比较低
    $ sudo apt install docker.io
    

    3.启动docker

    # 将Docker加入开启启动
    $ sudo systemctl enable docker
    # 启动Docker
    $ sudo systemctl start docker
    

    4.建立Docker用户组

    默认情况下,docker命令会使用Unix Socket与Docker引擎通信,只有root用户和docker组的用户才可以访问Docker引擎的Unix Socket。出于安全考虑,一般不会直接使用root用户,所以需要先建立docker组,并将当前用户添加到docker组中。

    $ sudo groupadd docker
    $ sudo usermod -aG docker $USER
    

    退出当前终端并重新登录,测试docker是否安装成功。

    # 查看Docker版本
    $ docker --version
    Docker version 18.09.4, build d14af54266
    

    5.测试Docker是否安装成功

    注意: 在执行如下测试之前,一定要退出当前终端重新登录,否则会提示当前用户没有连接Docker引擎的Unix Socket权限,切记!

    $ docker run hello-world
    

    在Ubuntu18.04 LTS桌面版上使用时,安装完毕Docker,并将当前用户添加到docker组之后需要重启机器才能使用Docker启动容器,否则会报权限错误:

    docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
    See 'docker run --help'.
    

    三.配置镜像加速器

    国内从Docker Hub拉取镜像有时会非常慢,此时可以配置镜像加速器。
    如下以配置163镜像加速器为例说明.

    Ubuntu 14.04/Debian 7 Wheezy

    对于使用upstart的系统而言,编辑/etc/default/docker文件,在其中的DOCKER_OPTS中添加获得的加速器配置:
    DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com"

    重新启动服务。

    $ sudo service docker restart
    

    Ubuntu 16.04+/Debian 8+/CentOS 7

    对于使用systemd的系统,在/etc/docker/daemon.json中写入如下内容(如果文件不存在需要新建该文件)

    {
        "registry-mirrors": [
            "http://hub-mirror.c.163.com"
        ]
    }
    

    之后重新启动服务。

    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    

    【参考】
    https://github.com/yeasy/docker_practice Docker从入门到实践
    https://www.gitbook.com/book/yeasy/docker_practice/details Docker — 从入门到实践
    http://www.docker.org.cn/book/docker/what-is-docker-16.html docker手册
    https://www.w3cschool.cn/docker/ docker教程
    http://www.runoob.com/docker/docker-tutorial.html docker教程
    https://docs.docker.com/install/linux/docker-ce/ubuntu/ Docker官方手册
    https://www.jianshu.com/p/84b6fe281b4d docker更换为国内镜像

  • 相关阅读:
    LeetCode485 最大连续1的个数
    LeetCode167 两数之和 II
    js浮点数类型
    js整数类型
    js布尔类型
    js重复赋值 js数据交换 js调式方法
    JavaScript变量
    数据类型分类
    重复赋值 数据交换 查看程序执行结果
    JS注释 JS变量
  • 原文地址:https://www.cnblogs.com/nuccch/p/10759815.html
Copyright © 2011-2022 走看看