![0131515bad2cd8912c7061a3fdc362d5.png](https://i-blog.csdnimg.cn/blog_migrate/4d9a5fbecd08c59ec91858e39d1b6a5b.png)
题记:如果你还在偶尔用vmware里面的linux学习或者利用linux,强烈建议你花半天到一天时间学习docker来完全替换掉vmware
大概一年前开始陆陆续续听大家谈论起docker,k8s,当时还只是初次接触openstack相关的项目,焦头烂额最终总算大概明白openstack是啥东西了,至于docker k8s只觉得有可能是类似openstack一样的动动,工作中用不到也就没学的动力,最近看到招聘网站上有关IDC类招聘的工作大部分都有提到最好有docker相关能力,所以就从网站上尝试搜索了下看能不能简单上个手,这一看不得了,只用了昨天一天时间,用户体验感觉docker已经甩vmware半条街了,已经有多年的vmware virtualbox里面装各种版本的虚拟机的体验,总觉得每次打开都很繁琐,有时候能不打开尽量就不打开了,经过昨天一天的学习,感觉以后天天可以在工作电脑上挂着docker里的ubuntu了,哈哈!
本笔记只记录docker学习过程中所用的指令以及遇到的问题,以备将来扔掉一段时间后重新快速捡起来所使用,当然如果别的读者如果阅读后能有所收获,那也是喜出望外滴!废话不再多说,下面就开始从安装开始说起。
- 安装docker
原计划在vmware里的ubuntu16.04里安装,结果查找了网上搜出来的各种方法,结果都是{E: Package 'docker-ce' has no installation candidate},好容易下定决心学下docker,结果第一步就掉链子了,衰!后来终于查到是因为vmware装ubuntu的时候选的内核不一样(google查到的,百度没有找到这个说法),记得可以选装i386或者amd64的,记不太清了,移动硬盘没在手边,也没法重新装ubuntu了,为了尽快能加入docker大家庭,在谷歌云上开通了一个debian的云主机。
应该是下面这个哥们说的原因,因为给ubuntu起的名字出卖了我,^^^
![23fdb13dbd56f00d022a07364ae1fc4e.png](https://i-blog.csdnimg.cn/blog_migrate/89b7b21294c85a2682baa06f88115803.png)
https://forums.docker.com/t/installation-failure-ubuntu-16-04-lts/43667
root@ubuntu-16-04-05-server-03:~# sudo wget -qO- https://get.docker.com/ | bash
sudo: unable to resolve host ubuntu-16-04-05-server-03
# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -qq - >/dev/null'
+ sh -c 'echo "deb [arch=i386] Index of linux/ubuntu/ xenial stable" > /etc/apt/sources.list.d/docker.list'
+ sh -c 'apt-get update -qq >/dev/null'
+ '[' -n '' ']'
+ sh -c 'apt-get install -y -qq --no-install-recommends docker-ce >/dev/null'
E: Package 'docker-ce' has no installation candidate
root@ubuntu-16-04-05-server-03:~# curl -fsSL https://get.docker.com -o get-docker.sh
root@ubuntu-16-04-05-server-03:~# sudo sh get-docker.sh
sudo: unable to resolve host ubuntu-16-04-05-server-03
# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -qq - >/dev/null
+ sh -c echo "deb [arch=i386] Index of linux/ubuntu/ xenial stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ [ -n ]
+ sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
E: Package 'docker-ce' has no installation candidate
好了,知道vmware里的ubuntu不行,大费周章的开通了谷歌云debian,祈祷了下别再出问题,祈祷果然好用,几条指令下去,docker就这么安装好了!
这次安装是按照下面这个文章里给的官方步骤来安装的:
只要一小时,零基础入门Docker - 笑虎的文章 - 知乎 https://zhuanlan.zhihu.com/p/23599229
Get Docker Engine - Community for Debiandocs.docker.com![c5c27dcf3a9f1018e963031d57fa78f7.png](https://i-blog.csdnimg.cn/blog_migrate/6e1b4b0c479ef76f2b1845b817dbc45d.png)
所有的指令如下:没遇到任何意外,直接到hello-world了,大功告成,吼吼!因为我的debian linux,别的发行版本的可能要用到不同的指令,不出意外应该所有的linux都是支持docker的,毕竟连windows都支持了!
$ sudo apt-get update
$ sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg2
software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ 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
$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/debian
$(lsb_release -cs)
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo docker run hello-world
//我的linux发行版本
root@instance-1:~# cat /proc/version
Linux version 4.9.0-9-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16)
———————————————————————分割线-——————
感觉谷歌云主机被盗用了,一个周末跑了1T的流量,然后主机也不工作了。。把原来那台vm给删掉重新建了下,然后用网上简便的方式试了下安装,工作正常,跟上面步骤安装的版本一样,由于一般人都用ubuntu作为host,所以也抛弃debian改用ubuntu16.04LTS版本了,目前跟debian无差别!
https://yeasy.gitbooks.io/docker_practice/content/install/ubuntu.htmlyeasy.gitbooks.ioroot@instance-1:~# curl -fsSL get.docker.com -o get-docker.sh
root@instance-1:~# sh get-docker.sh --mirror Aliyun
# Executing docker install script, commit: 6bf300318ebaab958c4adc341a8c7bb9f3a54a1a
+ sh -c apt-get update -qq >/dev/null
+ sh -c apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL "https://mirrors.aliyun.com/docker-ce/linux/debian/gpg" | apt-key add -qq - >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c echo "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian stretch stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ [ -n ]
+ sh -c apt-get install -y -qq --no-install-recommends docker-ce >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:22:03 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:20:35 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker your-user
Remember that you will have to log out and back in for this to take effect!
WARNING: Adding a user to the "docker" group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
for more information.
root@instance-1:~# docker version
Client: Docker Engine - Community
Version: 19.03.1
API version: 1.40
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:22:03 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.1
API version: 1.40 (minimum version 1.12)
Go version: go1.12.5
Git commit: 74b1e89
Built: Thu Jul 25 21:20:35 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.2.6
GitCommit: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc:
Version: 1.0.0-rc8
GitCommit: 425e105d5a03fabd737a126ad93d62a9eeede87f
docker-init:
Version: 0.18.0
GitCommit: fec3683