目录

一.Docker概述

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

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更换为国内镜像

Docker实践之01-入门介绍的更多相关文章

  1. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  2. [译]Vulkan教程(01)入门

    [译]Vulkan教程(01)入门 接下来我将翻译(https://vulkan-tutorial.com)上的Vulkan教程.这可能是我学习Vulkan的最好方式,但不是最理想的方式. 我会用“d ...

  3. Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS

    Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...

  4. Linux入门介绍

    Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...

  5. 【翻译转载】【官方教程】Asp.Net MVC4入门指南(1): 入门介绍

    1. Asp.Net MVC4 入门介绍 · 原文地址:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/ ...

  6. Docker系列之原理简单介绍

    目录 1.1.Docker架构简介 1.2.Docker 两个主要部件 1.3.虚拟机和Docker对比: 1.4.Docker内部结构 Docker系列之原理简单介绍 @ Docker是一个开源的应 ...

  7. (转)MQTT 入门介绍

    原文链接:https://blog.csdn.net/qq_2887... MQTT 入门介绍 一.简述 MQTT(Message Queuing Telemetry Transport,消息队列遥测 ...

  8. docker容器技术基础入门

    目录 docker容器技术基础入门 容器(Container) 传统虚拟化与容器的区别 Linux容器技术 Linux Namespaces CGroups LXC docker基本概念 docker ...

  9. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

随机推荐

  1. libevent 实现的socket 通信 server以及解决找不到动态库的方法

    注: client 个人觉得没必要用 libvent来实现就没写 注:由于 涉及到回调函数的使用 如有疑惑的可以先去了解回调函数的实现机理 先来说一下 libevent主要是干啥的 : 内部封装了 s ...

  2. lua_local变量在new时不会被清空

    前言 我的运行环境 Lua5.3 按照我们以往的Java或C#编程经验,如果一个class被new,那么这个class中所有成员变量的值都是默值或是构造函数中赋的值,但在Lua中的local变量却并不 ...

  3. 我的Windows日常——炫酷的windows组件命令行打开方式

    regedit -------注册表编辑器 gpedit.msc-------组策略编辑器 secpol.msc--------本地安全策略 control ----------控制面板 cmd--- ...

  4. python崩溃到现在居然还没有放弃的Day07

    今天新入一个全新的知识面,叫做深浅拷贝,拷贝英文名copy,俗称复制,作为一个火影迷就会想到拷贝忍者旗木卡卡西,跑题了,在所有的数据存储时,都会有内存地址和存储地址,浅拷贝只拷贝第一层的内存地址,深拷 ...

  5. Synchronized的基本知识、实现原理以及其与ReentrantLock的区别

    一.synchronized知识 在谈论synchronized之前,我们需要了解线程安全问题的主要诱因.线程安全问题的主要诱因如下: 存在共享数据(也称为临界资源) 存在多条线程共同操作这些共享数据 ...

  6. UVA - 11090 - Going in Cycle!!(二分+差分约束系统)

    Problem  UVA - 11090 - Going in Cycle!! Time Limit: 3000 mSec Problem Description You are given a we ...

  7. 安装Linux虚拟系统

    VMWare创建虚拟机与Linux系统的安装 准备工作:VMWare虚拟机,Linux系统镜像 创建好虚拟机之后就可以进入Bios(Basic input ouput system)界面设置安装引导顺 ...

  8. django drf json格式化日期时间带T的问题 基于python的解决方法

    # models.py update_time = models.DateTimeField(verbose_name=u'更新时间', default=timezone.now) 问题:天 与 小时 ...

  9. 企业出口退税申报系统的Sqlite数据库破解及读写

    QQ:564955427 原始出处:https://www.cnblogs.com/Charltsing/p/TSSB.html 最近一些朋友反映龙图的企业出口退税申报系统的Sqlite数据库改变了加 ...

  10. Mysql [Err] 1292 - Truncated incorrect DOUBLE value

    Mysql [Err] 1292 - Truncated incorrect DOUBLE value: 'a' - 苍 - 博客园 https://www.cnblogs.com/cang12138 ...