Docker环境搭建与使用:docker的简介与架构以及安装docker
文章目录
-
- Docker环境搭建与使用
-
- 一、Docker简介
-
- 1、什么是Docker
- 2、优点
- 二、`Docker` 架构
-
- 1、三个基本概念
- 2、运行原理
- 三、安装`Docker`
-
- 1、由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
- 2、更新apt包索引:
- 3、安装以下包以使apt可以通过HTTPS使用存储库(repository):
- 4、添加Docker官方的GPG密钥:
- 5、使用下面的命令来设置stable存储库:
- 6、再更新一下apt包索引:
- 7、安装最新版本的Docker CE:
- 8、查看docker服务是否启动:
- 9、经典的`hello world`:
- 10、将用户加入的`docker`组中
Docker环境搭建与使用
【参考网址】
【官网】
一、Docker简介
1、什么是Docker
-
Docker
是一个开源的应用容器引擎,基于Go
语言 并遵从Apache2.0
协议开源。 -
Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux
机器上,也可以实现虚拟化。 -
容器是完全使用沙箱机制,相互之间不会有任何接口(类似
iPhone
的app
),更重要的是容器性能开销极低。
Docker
从17.03
版本之后分为CE
(Community Edition
: 社区版) 和EE
(Enterprise Edition
: 企业版),本次内容使用ce
版进行学习。
2、优点
-
快速,一致地交付您的应用程序
Docker
允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。容器非常适合持续集成和持续交付(
CI
/CD
)工作流程。 -
响应式部署和扩展
Docker
是基于容器的平台,允许高度可移植的工作负载。Docker
容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。Docker
的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。 -
在同一硬件上运行更多工作负载
Docker
轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker
非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
二、Docker
架构
1、三个基本概念
Docker
包括三个基本概念:
-
镜像(
Image
):Docker
镜像(Image
),就相当于是一个root
文件系统。比如官方镜像ubuntu:16.04
就包含了完整的一套Ubuntu16.04
最小系统的root
文件系统。 -
容器(
Container
):镜像(Image
)和容器(Container
)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 -
仓库(
Repository
):仓库可看成一个代码控制中心,用来保存镜像。
Docker
使用客户端-服务器(C/S
)架构模式,使用远程API
来管理和创建Docker
容器。
Docker
容器通过Docker
镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
2、运行原理
docker_host
是一个物理或者虚拟的机器用于执行Docker
守护进程和容器。
操作用户可以通过Docket
客户端完成从Registry
通过命令下载镜像到docker_host
。然后创建容器并运行容器。同时也可以通过Dockerfile文件来构建新的镜像,并将构建的镜像上传到远程仓库。
一个Docker Registry
中可以包含多个仓库(Repository
);每个仓库可以包含多个标签(Tag
);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 :
的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以
latest
作为默认标签。
repository
的完整格式为:[registry-host]:[port]/[username]/xxx
Docker远程仓库是开源的,我们还可以创建本地仓库,将自已创建镜像上传到本地仓库。
三、安装Docker
【参考地址】
1、由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
$ sudo apt-get remove docker docker-engine docker-ce docker.io
2、更新apt包索引:
$ sudo apt-get update
3、安装以下包以使apt可以通过HTTPS使用存储库(repository):
$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
4、添加Docker官方的GPG密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
5、使用下面的命令来设置stable存储库:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
6、再更新一下apt包索引:
$ sudo apt-get update
7、安装最新版本的Docker CE:
$ sudo apt-get install -y docker-ce
8、查看docker服务是否启动:
$ systemctl status docker
若未启动,则启动docker服务:
$ sudo systemctl start docker
9、经典的hello world
:
$ sudo docker run hello-world # hello-world是一个测试镜像,直接可以运行
也可以下载centos容器镜像,然后使用命令输出指定文字
docker run ubuntu:20.04 /bin/echo '你好世界'
说明
docker
:Docker
的二进制执行文件run
: 与前面的docker
组合来运行一个容器。ubuntu:20.04
:指定要运行的镜像。Docker
首先从本地主机上查找镜像是否存在,如果不存在,Docker
就会从镜像仓库DockerHub
下载公共镜像并创建容器执行。/bin/echo
“你好世界”: 在启动的容器里执行的命令
10、将用户加入的docker
组中
sudo usermod -aG docker ${USER} # ${USER}获取当前用户newgrp docker # 需更新docker用户组