本文是我在学习《Docker技术入门与实战》第3版(杨保华 戴王剑 曹亚仑编著)时所做的笔记,有许多描述不清楚的地方,还请见谅,建议自行购买学习。
介绍
docker是基于Go语言实现的开源容器项目。
docker优势:
1、更快速的交付和部署;
2、更高效的资源利用;
3、更轻松的迁移和扩展;
4、更简单的更新管理。
docker是内核级的虚拟化,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,也是操作系统级虚拟化。docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。
核心概念
docker有三大核心概念,镜像、容器和仓库。
镜像是创建容器的基础,类似于虚拟机镜像,可以将它理解成一个只读的模板。
容器是从镜像创建的应用运行实例,可以启动、开始、停止、删除,这些容器都是彼此相互隔离、互不相见的。容器类似于一个轻量级的沙箱,docker利用容器来运行和隔离应用。
仓库类似于代码仓库,是集中存放镜像文件的场所。最大的公开仓库是官方提供的Docker Hub。如果用户不希望公开分享自己的镜像文件,docker也支持用户在本地网络内创建只能自己访问的私有仓库。
安装
我使用的是ubuntu19.04系统,因此以ubuntu19.04系统为例来讲述如何安装docker以及踩过的坑。
从docker官网https://www.docker.com/中找ubuntu下的安装教程https://docs.docker.com/install/linux/docker-ce/ubuntu/。
1、确定docker以及依赖包未安装:
sudo apt-get remove docker docker-engine docker.io containerd runc
2、更新下软件源:
sudo apt-get update
3、安装过程中需要的软件:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
4、执行:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
5、执行:
lsb_release -cs
uname -p
上述两条命令在我的电脑上的执行结果分别是disco和x86_64,根据官网
上的说明,x86_64和amd64结果都用amd64。
将上述两条命令的执行结果替换到下述命令中暂时别执行,下边这条命令是官方提供的,里边有坑!
sudo add-apt-repository \
"deb [arch=$(uname -p)] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
访问命令中的链接 https://download.docker.com/linux/ubuntu然后根据上述参数往下找deb文件找到路径https://download.docker.com/linux/ubuntu/dists/disco/pool/stable/amd64/,里边确定docker-ce docker-ce-cli containerd.io三个deb文件是否都有,如若没有或者缺少,则不能使用stable,可返回上层后找其它目录,我找到的是https://download.docker.com/linux/ubuntu/dists/disco/pool/nightly/amd64/路径下三个deb文件都有,因此stable改称nightly(我刚开始学的时候stable下没有这3个deb文件,因此自己试了下才发现可以这么改,不过整理这份文档的时候发现stable目录下三个deb文件都已经有了,所以不用作替换了)。需执行的命令是:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
disco \
nightly"
具体stable和nightly的区别,自己查阅官方文档https://docs.docker.com/install/
6、执行:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
7、测试安装结果:
sudo docker run hello-world
docker –version
免sudo和密码使用docker
直接运行docker命令会遇到如下权限问题:
原因是/var/run/docker.sock文件,除root用户,只有docker组用户才可读写
所以,首先将当前用户加入到docker组
sudo gpasswd -a 用户名 docker
然后logout 当前用户,重新登录,就好了。
————————————————
版权声明:免sudo和密码使用docker部分参考CSDN博主「MainMay」的原创文章整理,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cmzhuang/article/details/80749758