Docker-01-简介

Docker-01-简介

mark

Docker官网https://www.docker.com/

Docker文档:https://docs.docker.com/

Docker社区:https://hub.docker.com/

1. 为什么会有Docker?

对于一款产品来说:

  • 两套环境(应用环境,应用配置)

  • 对于开发人员,运维人员(我在我的电脑上可以,版本更新,导致服务不可用)

  • 环境配置十分麻烦:每一个集群都要布置环境(集群的配置)

  • 设想一个情景(jar + (Redis Mysql jdk, ES)):项目带上环境打包

    • 之前在服务器配置一个应用的环境Redis Mysql jdk, ES(环境十分麻烦)
  • 如果有了Docker,开发打包部署上线,一套流程做完

mark

  • Docker的思想来自于集装箱

JRE–> 多个应用(端口冲突) – > 原来都是交叉的!

隔离是Docker的核心思想(打包装箱,每一个箱子是互相隔离的)

总结:

由于以上出现的问题,所以才出现了Docker

由于不同的机器有不同的操作系统,以及不同的库和组件,在将一个应用部署到多台机器上需要进行大量的环境配置操作。

Docker 主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统和其它隔离的进程。使用 Docker 可以不修改应用程序代码,不需要开发人员学习特定环境下的技术,就能够将现有的应用程序部署在其它机器上。

mark

2. 与虚拟机的比较

虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件。

并在硬件上安装操作系统来实现。

  • 虚拟机模拟一套完整的操作系统
  • 容器内的引用直接运行在宿主机上(没有虚拟我们的硬件)

mark

2.1 启动速度

  • 启动虚拟机需要先启动虚拟机的操作系统,再启动应用,这个过程非常慢;
  • 而启动 Docker 相当于启动宿主操作系统上的一个进程。(可能还是秒级)

2.2 占用资源

  • 虚拟机是一个完整的操作系统,需要占用大量的磁盘,内存和CPU资源,一台机器只能开启几十个虚拟机
  • Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个Docker

2.3 DevOps(开发,运维)

  • 更快速的交付和部署
    • 传统:一堆帮助文档和安装程序
    • Docker:一键运行,打包镜像,一键运行
  • 更快捷的升级的扩容
    • 软件的版本升级
  • 更简单的系统运维
    • 开发,测试环境可以高度一致
  • 更高效的计算资源利用
    • Docker是内核级别的虚拟化,可以在一个物理机上运行更多的容器实例

3. Docker的安装

3.1 基本组成

mark

  • 镜像(image): 通过这个镜像可以创建多个容器
  • 服务器(container) : Docker利用容器技术,独立运行一个或者一组应用
  • 仓库(repository) : 仓库就是放镜像的地方(公有仓库和私有仓库)(类似github)

3.2 安装

  • 环境准备
    • Xshell连接远程服务器
    • Linux服务器(Centos,ubuntu)

mark

官方安装文档:https://docs.docker.com/engine/install/ubuntu/

中文版菜鸟教程(Ubuntu) : https://www.runoob.com/docker/ubuntu-docker-install.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Ubuntu 18.04 安装 Docker-ce

1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update

2.安装需要的包

sudo apt install apt-transport-https ca-certificates software-properties-common curl

3.添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"

4.添加成功后更新软件包缓存

sudo apt update
5.安装 Docker-ce

sudo apt install docker-ce
6.设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)

sudo systemctl enable docker
sudo systemctl start docker
7.测试运行

sudo docker run hello-world
8.添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)

sudo groupadd docker
sudo usermod -aG docker $USER

9.测试添加用户组(可选)
docker run hello-world

安装完之后:运行docker version

出现以下提示代表安装成功

mark

或者运行docker run hello world

mark

查看镜像 docker images

mark

docker默认安装路径

mark

3.3 配置阿里云镜像加速

  • 登录阿里云,找到容器镜像服务

  • 配置镜像加速器

mark

mark

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 创建目录
sudo mkdir -p /etc/docker
# 2. 配置镜像
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://nruhnhhs.mirror.aliyuncs.com"]
}
EOF

# 3. 重启daemon
sudo systemctl daemon-reload

# 4. 重启docker
sudo systemctl restart docker
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信