参考博客:

1.官网教程:https://docs.docker.com/engine/install/   根据本机不同的信息选择不同的安装方式:  https://docs.docker.com/engine/install/ubuntu/

2.其他博客:https://www.jianshu.com/p/482d1eb4d9a2

3.视频教程:https://www.bilibili.com/video/BV1og4y1q7M4?t=380&p=8(老师讲的很好)

前言:docker架构

docker组成:

1.客户端;

2.服务端,服务端中又包括镜像和容器,其中镜像和容器的关系可以理解成,类和对象的关系。每个镜像可以实例出若干个容器(最终服务或项目运行就是在容器中的)

3.(远程)仓库:存放镜像的地方,一般是在docker hub上,在国外就想github一样,慢!因此我们要配置国内的源,比如阿里云docker镜像地址。

一、准备工作

因为要配置阿里云镜像地址,所以仅仅看官网的教程是不够的,并且我这里的机器是:

所以在https://docs.docker.com/engine/install/这个页面中,

然后进入了https://docs.docker.com/engine/install/ubuntu/页面,到这里准备工作大致完成,后面可以参考https://www.jianshu.com/p/482d1eb4d9a2博客进行安装(或者继续看我的)

二、卸载旧的docker

不管你是否安装过,都可以执行这一步,反正执行了不亏。。。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

补充:(来自官网),为了彻底删除docker,clean docker环境

Uninstall Docker Engine

  1. Uninstall the Docker Engine, CLI, and Containerd packages:

    $ sudo apt-get purge docker-ce docker-ce-cli containerd.io
  2. Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes:

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

You must delete any edited configuration files manually.

三、正式安装docker

有多种安装方法,这里采用官网推荐的使用仓库进行安装

$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

验证密钥是否添加成功,输入指令

$ sudo apt-key fingerprint 0EBFCD88

出现如下说明ok:

四、写入docker stable版本的阿里云镜像软件源

$ sudo add-apt-repository \
"deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update

五、安装最新的docker社区版

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

六、验证是否安装成功

$ sudo docker version

出现下图说明成功:

七、启动docker

systemctl start docker

八、搜索镜像:

docker search nginx

一般没问题,但是出现过报错如下:

Error response from daemon: Get https://index.docker.io/v1/search?q=nginx&n=25: dial tcp: lookup index.docker.io on 127.0.1.1:53: no such host

可以简单分析得知是网络配置不对,本地回环地址127.0.1.1:53是不对的

打开文件

vi /etc/resolv.conf

发现:

果然这个ip配置的不对,查阅资料修改为:

8.8.8.8是Google提供的免费DNS服务器的P地址)我理解的是,docker pull镜像要做dns域名解析,一般是从docker hub上拉取,所以要用8.8.8.8,如果docker hub在国内,用114.114.114.114也可以。

后续执行命令:

service network-manager restart

systemctl restart docker

到此一般就ok了

后续:

在安装好之后,可以通过命令,从仓库中拉取我们的第一个镜像,运行命令,sudo docker run hello-world,会将"hello-world"拉取到本地,输入docker images 可以看到这个镜像。那么docker到底是怎么工作的呢

docker是一个client-server结构的系统,docker的守护进程运行在宿主机上,通过socket和客户端访问。

docker-server接收到docker-client的指令,就会执行这个命令

为什么docker速度比虚拟机(vm等)快?

1、因为docker有更少的抽象层。

2、docker用的是宿主机的内核,虚拟机用的是guest os

总之,新建一个容器的时候,不需要像虚拟机一样重新加载一个操作系统内核。

PS:

GuestOS:VM(虚拟机)里的的系统(OS);

HostOS:物理机里的系统(OS);

docker学习笔记(1)——ubuntu16.04安装docker(含如何彻底卸载docker,docker拉取镜像失败解决)的更多相关文章

  1. Docker学习笔记(1):CentOS7安装Docker

    Docker是一个基于Go语言实现的开源应用容器引擎,通过对应用组件的封装.分发.部署.运行等生命周期的管理,使程序及其运行环境能够做到"一次封装,到处运行". Docker架构 ...

  2. Docker学习笔记一 概念、安装、镜像加速

    本文地址:https://www.cnblogs.com/veinyin/p/10406378.html  Docker 是一个容器,可以想象成一个轻便的虚拟机,但不虚拟硬件和操作系统. 优点:启动快 ...

  3. 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)

    本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...

  4. docker学习笔记一:基本安装和设置容器静态ip

    docker是一个lxc升级版的容器类虚拟环境,具有快速部署,灵活,易迁移的虚拟机模式,现在各大公司已经开始广泛使用为了自己方便学习linux,需要多台虚拟机环境,但是vmware开启多台虚拟机时需要 ...

  5. Docker学习笔记【三】安装Redis

    项目中使用到Redis,平常都是别人搭建的,今天试着在Google Cloud Platform 上搭建一个学习环境. 1.使用 docker pull redis 从docker hub中下载镜像 ...

  6. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  7. [心得]docker学习笔记

    1. docker是什么??? (1) docker是一台类似虚拟机的功能, 内部由一个个镜像组成, 镜像里可以运行容器, 而这个容器可以是任何东西, 比如mysql, 比如tomcat等等, 它的目 ...

  8. Docker学习笔记1

    来源:第一本Docker书 基础命令 安装: apt-get install docker 启动: service docker start 创建并运行第一个容器: docker run -i -t ...

  9. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

随机推荐

  1. python06day

    Now代码1005行 回顾 字典的初识 查询速度快,{'name':'tangdaren'},存储大量关联型数据 键:int.str(bool tuple不常用)不可变的数据类型 值:任意数据类型 3 ...

  2. dp学习(三)

    dp优化(一) 10. 状压dp 11. 倍增优化dp 12. 单调队列优化 13. 决策单调性优化(四边形不等式优化) 14. 斜率优化 15. 数据结构优化

  3. java中的继承 和多态。

    package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...

  4. 计算机网络再次整理————tcp的关闭[七]

    前言 tcp的关闭不是简单粗暴的,相对而言是友好优雅的,好聚好散吧. 那么友好的关闭方式是这样的: 假设这里是客户端请求关闭的,服务端倒过来. 客户端:我要请求关闭 服务端:我接收到你的请求了,等我把 ...

  5. AndroidStudio项目提交到github最详细步骤【转】

    感谢大佬:https://www.cnblogs.com/imqsl/p/6763133.html 在使用studio开发的项目过程中有时候我们想将项目发布到github上,以前都是用一种比较麻烦的方 ...

  6. autorelease基本使用

    1.autorelease基本概念 autorelease是一种支持引用计数的内存管理方式,只要给对象发送一条autorelease消息,会将对象放到一个自动释放池中,当自动释放池被销毁时,会对池子里 ...

  7. 有关 iOS 的开发证书、应用标识、设备标识、配置文件以及密钥 #DF

    iOS开发过程中如果需要进行真机调试.发布需要注册申请很多证书, 以下是对iOS开发的常用证书和密钥等的逐一简单说明: 证书 iOS常用的证书包括开发证书和发布证书,无论是真机调试还是最终发布应用到A ...

  8. js实现网页回弹小球效果

    直接上效果图 运行页面会首先弹出一个输入框,询问用户想要产生的小球数量,随后后台就会产生指定数量的小球,在页面中来回跳动,触碰到页面边框时,就会回弹,且产生的小球颜色随机,小球在页面中的位置随机,小球 ...

  9. Docker 中的问题:”invalid reference format: repository name must be lowercase”

    在导入镜像的时候出现问题:invalid reference format: repository name must be lowercase 问题解决:镜像命名不能出现大写字母,将大写改为小写即可 ...

  10. Node.js躬行记(15)——活动规则引擎

    在日常的业务开发中,会包含许多的业务规则,一般就是用if-else硬编码的方式实现,这样就会增加逻辑的维护成本,若无注释,可能都无法理解规则意图. 因为一旦规则有所改变,那么就需要修改代码再发布代码, ...