本篇文章来源于官方文档,是我学习后的总结。
Docker概述
Docker主要分为以下版本
Docker CE 社区版,适用于开发者和小团队用于体验container-based apps(基于容器的应用)
Docker EE 企业版,为企业开发和构建,传输,运行企业级别应用的IT团队而设计
Docker Edge 最新版,每月更新,用于体验最新的特性
Docker for AWS 用于Amazon Web Services 的Docker版本
Docker for Azure 用于Mircosoft Azure的Docker版本
Docker Toolbox 用于低版本的Mac和Windows系统,
因为这些低版本的不满足如今的Docker运行的最低条件。
接下来,是我阅读Docker Docs
里面的Get Started的摘要
Orientation导向
关于Container和image的解释
image指的是轻量的, 单独的,可执行的包,包括代码、运行时、库、环境变量和配置文件
container是image的运行时实例,是image在内存中执行时的形态。
关于Container和Virtual Machine的解释
各个虚拟机之间相互独立,各有各的设置,各有各的操作系统,大家不互通。
各个Container团结在一个Docker上面,
Container各不相同,但都受同一个Docker的统治,
而且仅需要可执行文件和依赖就可以让container跑起来,
大家共享一个系统内核,而且你的container的依赖不需要安装到宿主机上。
How to install docker on your machine 如何安装Docker
首先安装的话分三个阵营,分别是桌面端,云端,服务器端
,令人欣喜的而是,Docker全都支持
,具体指南见官方说明
下面,我打算在我洛杉矶的云服务器上安装Debian系统上的Docker,
按照官方指南,我们的步骤是查询系统版本,确定是否满足安装需求,然后卸载可能有的旧版本的Docker,然后安装仓库,最后安装Docker CE。
我的服务器版本是Debian 9 - Stretch,X86_64
架构,执行如下命令。
apt-get remove docker docker-engine docker.io //清除可能存在的旧版本docker
apt-get update //更新package
//下面的几行命令是一条,是在安装docker的依赖
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
//在本地apt库里面添加docker的公钥,用于验证以后安装的docker是不是正宗的
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
//检测是否添加公钥成功,成功后的公钥后8位是0EBFCD88,有输出代表添加成功,没有任何输出则代表没有那个公钥
apt-key fingerprint 0EBFCD88
//添加Docker 到apt的仓库,这个和前面的software-properties-common有关,这也是前面为什么要安装那么多依赖的原因
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
//前面添加了apt仓库,现在更新一下
apt-get update
//正式安装Docker CE
apt-get install docker-ce
//至此全部安装成功
测试安装是否成功
docker run hello-world
如果你看见了输出信息如下,那么你的Docker安装就成功了
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/