这两天在捣鼓docker,因为这玩意本身就是基于Linux内核搞的,所以先想着在Ubuntu上安装一个试试。。。。
第一步:安装虚拟机,我选的是vmWare15.5(我本地环境是win10),这里不再描述vm的安装步骤了。
第二步:在虚拟机上安装ubuntu,看教程说Docker对Linux的版本有最低要求,于是乎,就找了个比较新的版本Ubuntu20.04
第三步:安装docker
在网上看了很多的教程说明,一顿操作,咋觉得这玩意没那么容易安装啊,于是,各种删了装,装了再删,但其中最多的好像是因为使用了国外的镜像,一直下载不下来或者超时,脑细胞狂烧。。。。
言归正传。。。
在踩了n个坑之后,在阿里云上发现了docker-ce的安装教程,其上介绍如下:
这里附上阿里云的对应网址:https://developer.aliyun.com/mirror/docker-ce
Ubuntu 14.04/16.04(使用 apt-get 进行安装)
# 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 https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://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-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]
按照这个操作基本顺利,但到最后安装docker-ce的时候报错(阿里的教程上写的是Ubuntu16.04,我的版本是Ubuntu20.04,这个经过实操发现也是适用的):
package docker-ce is not avaliable,but is referred to by another package
然后有人说了:
打开 /etc/apt/sources.list.d/docker.list 中添加下面内容
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
我找了找,我的对应目录下,压根就没有docker.list这个文件,于是乎,在这个sources.list.d这个目录下新建立docker.list文件,然后在文件中增加内容:
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu bionic stable
注意:我这里增加的镜像是国内的镜像,并没有使用上面说的docker官方镜像,原因大家都懂。。。
之后,再执行上面阿里教程上的第四步,update ,然后install
再之后就发现成功!!!!surprise!!!
看看到底是不是成功:
运行如下代码:
sudo docker run hello-world
教训:在配置镜像和仓库的时候,发现很多老的资料中地址用的是http,新的应该是https,这点要注意。
追加。。。。。
在另外一台机子上 单独装了Ubuntu后,按照以上方法再次执行,到最后执行hello-world的时候报错
sudo docker run hello-world
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.
修改docker镜像源:
docker默认的源为国外官方源,下载速度较慢,可改为国内,加速
处理办法:
修改或新增 /etc/docker/daemon.json
# vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
然后执行命令:
systemctl restart docker.service
再次执行hello-world,成功!!!
续。。。
发现每次操作docker都要sudo获取权限,太麻烦,所有让docker的用户获得root权限,做如下操作
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl restart docker
su root 切换到root用户
su ${USER} 再切换到原来的应用用户以上配置才生效