一、安装Docker(官方镜像)

Docker现在的版本分为Docker-CE(社区版)和Docker-EE(企业版),由于历史版本的原因,在我们安装现在版本Docker的时候,如果之前的Linux已经安装了Docker,那么最好先删除了之后再进行安装,Docker的官方也有文档告诉我们在ubuntu中安装Docker

我们学习当然要使用的是Docker-CE社区版

1. 卸载旧版本docker

全新安装时,无需执行该步骤

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

2. 更新系统软件

$ sudo apt-get update

3. 安装依赖包

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

这几个安装主要是为了让apt通过HTTPS安装软件包

4.添加docker的官方GPG key

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

验证添加key的指纹信息,官方给出的指纹信息是:

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

搜索指纹最后的8个字符:

$ sudo apt-key fingerprint 0EBFCD88

pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <docker@docker.com>
sub   4096R/F273FCD8 2017-02-22

这一步是在干嘛?简单来说,就是Docker文件是经过GPG加密的,验证下载文件的真实性

5. 设定Docker稳定版的库

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

这一步是为了设定以后在Docker中查找相应的软件镜像仓库,仓库有稳定版(stable)就有测试版(test)的,还有一个边缘版(edge)

$(lsb_release -cs)是获得你当前使用的Linux的内核版本

6. 更新apt软件包库并安装docker

更新apt

$ sudo apt-get update

安装Docker-CE

$ sudo apt-get install docker-ce

二、安装docker (阿里云镜像)

上面的2-6步完全是按照官方说明的步骤来进行的,但是由于国内网速的问题,建议大家使用阿里云的镜像

Step 1: 更新并安装必要的一些系统工具

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

Step 2: 安装GPG证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

Step 3: 写入软件源信息

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

Step 4: 更新并安装Docker-CE

sudo apt-get -y update
sudo apt-get -y install docker-ce

在这里插入图片描述

在这里插入图片描述

三、Docker运行权限的问题

问题描述

安装完docker后,执行docker相关命令,比如搜索 docker search tomcat,出现

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/search?limit=25&term=mysql: dial unix /var/run/docker.sock: connect: permission denied

原因

摘自docker mannual上的一段话:

Manage Docker as a non-root user

The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.

If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

大概的意思就是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。

解决方法

其实在官方文档中已经给出了我们解决方案

创建Docker组
$ sudo groupadd docker
将当前用户加入到docker用户组中
$ sudo usermod -aG docker $USER

然后重启你的虚拟机,注意,这里仅仅只是重启Linux并不太安全,最好关闭虚拟机的Linux之后,再关掉虚拟机,重启虚拟机再重启ubuntu才可以。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐