docker是什么
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成:
DockerClient 客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器
说了这么多, Docker 到底是个啥子呢?我们在理解 Docker 之前,首先得先区分清楚两个概念:容器和虚拟机。
可能很多朋友都用过虚拟机,而对容器这个概念比较的陌生——简单来说,可以理解为:相较于VM,docker是轻量级的虚拟化技术,却有着更强大的性能。
虚拟机(VM):
- 我们用的传统虚拟机如 VMware , VisualBox 之类的需要模拟整台机器包括硬件。
- 每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。
- 每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。
容器(docker/Container):
- 容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。
- 容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。
- 容器技术是实现操作系统虚拟化的一种途径,可以让您在资源受到隔离的进程中运行应用程序及其依赖关系。
- 通过使用容器,我们可以轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。
- 容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。
- 容器还赋予我们对资源更多的精细化控制能力,让我们的基础设施效率更高。
一张图展示Docker和VM的区别:


介绍完理论,实际操作一下⑧
docker分社区版和企业版,这里我们选择社区版(因为企业版要钱)
官方文档中各大环境的安装说明: https://docs.docker.com/install/
这里我们以Ubuntu为例:
正常的话用包管理器一句话就装完了: apt install docker apt install docker.io
遇到小问题的话可以试试这个:
使用 Docker 仓库进行安装:
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker 。
设置仓库
更新 apt 包索引。
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
添加 Docker 的官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥。
sudoapt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb)<docker@docker.com>
sub rsa4096 2017-02-22 [S]
使用以下指令设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装 Docker Engine-Community
更新 apt 包索引。
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine-Community,请在仓库中列出可用版本,然后选择一种安装。列出您的仓库中可用的版本: apt-cache madison docker-ce
- docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
- docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
- docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
- docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
- ...
使用第二列中的版本字符串安装特定版本,例如 5:18.09.1~3-0~ubuntu-xenial。
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
测试 Docker 是否安装成功,输入 sudo docker run hello-world
,打印出以下信息则安装成功:
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete Digest: sha256:c3b4ada4687bbaa170745b3e4dd8ac3f194ca95b2d0518b417fb47e5879d9b5f
Status: Downloaded newer image for hello-world:latestHello from Docker!
This message shows that your installation appears to be working correctly.
或者直接查看版本号:
docker -v
得到这种显示则说明安装成功:
Docker version 19.03.6, build 369ce74a3c
其他常用命令可以参考这篇博客:docker常用命令
运行docker时发现权限不足可以康康这个:不输入sudo运行docker
Comments | NOTHING