文章目录

  • Pre
  • What's Docker ?
  • Why Docker ?
  • Docker vs VM
  • 常用概念
  • 安装Docker
    • 1. 查看服务器信息
    • 2. 卸载旧的版本
    • 3. 依赖的安装包
    • 4. 设置国内镜像地址
    • 5. 更新yum软件包索引
    • 6. 安装docker
    • 7. 启动Docker
    • 8. 查看docker version
    • 9. docker hello world
    • 10. 查看下载的镜像
    • 11. 卸载Docker
  • 加速


Pre

使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力。

在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如今在微服务架构越来越流行的情况下,微服务+Docker的完美组合,更加方便微服务架构运维部署落地。


What’s Docker ?

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。

简而言之, 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。


Why Docker ?

  • 1、更快速的交付和部署

    容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

  • 2、更高效的虚拟化

    Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

  • 3、更轻松的迁移和扩展

    Docker 容器几乎可以在任意的平台上运行 ,这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

  • 4、更简单的管理

    使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。


Docker vs VM

  • VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。
  • Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。
  • 由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷

Docker 跟传统的虚拟化方式相比具有众多的优势。

  • Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;
  • Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。


常用概念

Docker是CS架构,主要有两个概念:

  • Docker daemon

    运行在宿主机上,Docker守护进程,用户通过Docker client(Docker命令)与Docker daemon交互

  • Docker client

    Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通信并将结果返回给用户,Docker client也可以通过socket或者RESTful api访问远程的Docker daemon

了解了Docker的组成,再来了解一下Docker的三个主要概念:

  • Docker image

    镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。

  • Docker container

    容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。

  • Docker hub/registry

    共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry。

镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。


安装Docker

建议在linux环境下安装Docker, 使用Centos7+yum来安装Docker

1. 查看服务器信息

内核3.10及以上


[root@VM-0-7-centos ~]# uname -r
3.10.0-1160.11.1.el7.x86_64
[root@VM-0-7-centos ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"[root@VM-0-7-centos ~]#

2. 卸载旧的版本


[root@VM-0-7-centos ~]# yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
Loaded plugins: fastestmirror, langpacks
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal
[root@VM-0-7-centos ~]#

3. 依赖的安装包

[root@VM-0-7-centos ~]# yum install -y yum-utils
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
elk                                                                                                                 | 2.9 kB  00:00:00
epel                                                                                                                | 4.7 kB  00:00:00
extras                                                                                                              | 2.9 kB  00:00:00
os                                                                                                                  | 3.6 kB  00:00:00
updates                                                                                                             | 2.9 kB  00:00:00
(1/5): extras/7/x86_64/primary_db                                                                                   | 243 kB  00:00:00
(2/5): epel/7/x86_64/updateinfo                                                                                     | 1.0 MB  00:00:00
(3/5): elk/primary_db                                                                                               | 590 kB  00:00:00
(4/5): epel/7/x86_64/primary_db                                                                                     | 7.0 MB  00:00:00
(5/5): updates/7/x86_64/primary_db                                                                                  |  11 MB  00:00:01
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do
[root@VM-0-7-centos ~]#


4. 设置国内镜像地址

yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo  # 默认是国外的yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  # 阿里云镜像仓库(推荐)

那必须整国内的呀


[root@VM-0-7-centos ~]# yum-config-manager \
>     --add-repo \
>  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@VM-0-7-centos ~]#

5. 更新yum软件包索引

[root@VM-0-7-centos ~]# yum makecache fast
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
docker-ce-stable                                                                                                    | 3.5 kB  00:00:00
elk                                                                                                                 | 2.9 kB  00:00:00
epel                                                                                                                | 4.7 kB  00:00:00
extras                                                                                                              | 2.9 kB  00:00:00
os                                                                                                                  | 3.6 kB  00:00:00
updates                                                                                                             | 2.9 kB  00:00:00
(1/2): docker-ce-stable/7/x86_64/primary_db                                                                         |  64 kB  00:00:00
(2/2): docker-ce-stable/7/x86_64/updateinfo                                                                         |   55 B  00:00:00
Metadata Cache Created
[root@VM-0-7-centos ~]#


6. 安装docker

  • docker-ce社区版
  • ee 企业版
[root@VM-0-7-centos ~]# yum install docker-ce docker-ce-cli containerd.io

一路 y

直到看到


Installed:containerd.io.x86_64 0:1.4.10-3.1.el7           docker-ce.x86_64 3:20.10.8-3.el7           docker-ce-cli.x86_64 1:20.10.8-3.el7Dependency Installed:audit-libs-python.x86_64 0:2.8.5-4.el7                                checkpolicy.x86_64 0:2.5-8.el7container-selinux.noarch 2:2.119.2-1.911c772.el7_8                    docker-ce-rootless-extras.x86_64 0:20.10.8-3.el7docker-scan-plugin.x86_64 0:0.8.0-3.el7                               fuse-overlayfs.x86_64 0:0.7.2-6.el7_8fuse3-libs.x86_64 0:3.6.1-4.el7                                       libcgroup.x86_64 0:0.41-21.el7libsemanage-python.x86_64 0:2.5-14.el7                                policycoreutils-python.x86_64 0:2.5-34.el7python-IPy.noarch 0:0.75-6.el7                                        setools-libs.x86_64 0:3.3.8-4.el7slirp4netns.x86_64 0:0.4.3-4.el7_8Complete!


7. 启动Docker


[root@VM-0-7-centos ~]# systemctl start docker
[root@VM-0-7-centos ~]#

8. 查看docker version


[root@VM-0-7-centos ~]# docker version
Client: Docker Engine - CommunityVersion:           20.10.8API version:       1.41Go version:        go1.16.6Git commit:        3967b7dBuilt:             Fri Jul 30 19:55:49 2021OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer: Docker Engine - CommunityEngine:Version:          20.10.8API version:      1.41 (minimum version 1.12)Go version:       go1.16.6Git commit:       75249d8Built:            Fri Jul 30 19:54:13 2021OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.4.10GitCommit:        8848fdb7c4ae3815afcc990a8a99d663dda1b590runc:Version:          1.0.2GitCommit:        v1.0.2-0-g52b36a2docker-init:Version:          0.19.0GitCommit:        de40ad0
[root@VM-0-7-centos ~]#


9. docker hello world

[root@VM-0-7-centos ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:9ade9cc2e26189a19c2e8854b9c8f1e14829b51c55a630ee675a5a9540ef6ccf
Status: Downloaded newer image for hello-world:latestHello 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.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/[root@VM-0-7-centos ~]#

10. 查看下载的镜像


[root@VM-0-7-centos ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   10 days ago   13.3kB
[root@VM-0-7-centos ~]#


11. 卸载Docker

[root@VM-0-7-centos ~]#yum remove docker-ce docker-ce-cli containerd.io
[root@VM-0-7-centos ~]#rm -rf /var/lib/docker
[root@VM-0-7-centos ~]#rm -rf /var/lib/containerd


加速

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

[root@VM-0-7-centos ~]# mkdir -p /etc/docker
[root@VM-0-7-centos ~]# tee /etc/docker/daemon.json <<-'EOF'
> {>   "registry-mirrors": ["https://0uf1zwdk.mirror.aliyuncs.com"]
> }
> EOF
{"registry-mirrors": ["https://0uf1zwdk.mirror.aliyuncs.com"]
}
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://0uf1zwdk.mirror.aliyuncs.com"]
}
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#
[root@VM-0-7-centos ~]#  systemctl daemon-reload
[root@VM-0-7-centos ~]# systemctl restart docker
[root@VM-0-7-centos ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
hello-world   latest    feb5d9fea6a5   10 days ago   13.3kB
[root@VM-0-7-centos ~]#

Docker Review - Docker 概念 入门篇相关推荐

  1. docker卸载命令_Docker入门篇

    Docker简介 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全 ...

  2. Docker Review - docker 容器 常用命令

    文章目录 容器相关的命令 下载一个centos的基础镜像 新建容器并启动 docker run 操作说明 启动并进入容器 查看当前有哪些容器正在运行 docker ps 启动容器 停止容器 重启容器 ...

  3. Docker Review - docker images 常用命令

    文章目录 docker help docker image相关的命令 docker images 查看所有本地的主机上的镜像 docker search 搜索镜像 docker pull 下载镜像 d ...

  4. Docker Review - Docker 部署 Spring Boot 项目

    文章目录 Pre 编辑Dockerfile Dockerfile 构建镜像 运行镜像 测试 Pre 随手搞个spring boot的演示项目 ,确保能访问 编辑Dockerfile [root@VM- ...

  5. Docker Review - docker部署Tomcat Nginx

    文章目录 Docker 部署tomcat 搜索 tomcat 下载tomcat 启动tomcat 访问tomcat 查看webapps & 修复问题 重新访问tomcat Docker 部署N ...

  6. Docker Review - dockerfile 入门篇

    文章目录 Docker 镜像.容器 .Docker file 概述 Docker File文件格式 Docker File 解读 1.FROM 指定基础镜像 2.RUN 执行命令 3.COPY 复制文 ...

  7. Docker入门篇-搭建docker私服(注册表)

    在我们开始使用docker之前,我们先把私服搭建起来,这种顺序通常适用于生产级或实际工作的时使用docker的习惯.我们遵循这样的习惯. 概念 当我们执行docker pusll xxx的时候,默认是 ...

  8. Docker的深入浅出(入门新手篇)

    Docker的深入浅出(入门新手篇) (持续更新中......) 什么是Docker? 这个问题百度的话会有很多标准答案,但是晦涩难懂,鄙人从小语文不好所以在以下内容鄙人会用个人粗俗的语音加通俗的理解 ...

  9. Docker入门篇(一)

    Docker 概述 Docker Documentation | Docker Documentation 什么是Docker? - Docker入门教程 - docker中文社区 Docker为什么 ...

最新文章

  1. python定义函数的命令_Python入门 | 定义函数
  2. 网络配置 rpm yum
  3. 百度进军游戏;腾讯起诉抄袭者;苹果急撤 watchOS 5.1 更新 | 极客头条
  4. Spring AOP原理分析(一)-- AOP相关概念
  5. 国外博士论文下载网址
  6. 病毒是什么?地球上万物都是相生相克的,那么病毒在自然界的天敌是什么?...
  7. 2019 东北四省赛部分题解 The 13th Chinese Northeast Collegiate Programming Contest
  8. Word如何操作压缩图片?干货经验!怎么在Word中压缩图片?
  9. 【金猿产品展】智能媒体审校系统:内容安全生产的守护者
  10. 【计算题】(六)微分方程和无穷级数
  11. Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
  12. 知识产权审理庭解决方案
  13. getattr()函数详解
  14. 快手616品质购物节电商报告来了!24位达人带货破亿,新一代带货王诞生!
  15. 做公众号一年,赚100万
  16. SpringBoot 集成 Spring Data Mongodb 操作 MongoDB 详解
  17. 了解python语言的开发者_Python开发者
  18. WGS84地理坐标系和CGCS2000坐标相互转换
  19. 文件服务器鉴权,服务鉴权
  20. 腾讯X5内核 在线视频播放 使用说明 By Terry

热门文章

  1. 鸿蒙51单片机,基于C51系列单片机的交通控制系统设计
  2. php把字符串变为数组_php将字符串转换为数组
  3. ios 添加block 类别_ios之Block的详细使用和具体说明
  4. 运行时错误76未找到路径怎么解决_自动化测试解决竞争问题?等待一下就行了~...
  5. 数学建模大赛赛题解析:Mathorcup高校数学建模挑战赛-基于收得率预测模型的转炉炼钢的成本优化
  6. matlab从入门到精通-matlab计算机仿真与蒙特卡洛法【数学建模】
  7. 深度学习核心技术精讲100篇(六)-keras 实战系列之推荐系统FM(Factorization Machine)算法
  8. 数据挖掘之关联算法Apriori
  9. BloomFilter——大规模数据处理利器
  10. 探索推荐引擎内部的秘密