[Docker]一.Docker 简介与安装

打印 上一主题 下一主题

主题 637|帖子 637|积分 1911

一、Docker简介与为什么要用 Docker

1.1Docker 先容

      Docker    是一个跨平台的开源的   应用容器引擎   ,诞生于    2013    年初,基于    Go语言       并服从 Apache2.0 协议开源, Docker    可以把它明白成虚拟机,但是    Docker    和传统虚拟化方式   有所不同   :传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完备操作体系,在该系 \统上再运行所需应用进程;Docker    相比传统的虚拟化技术要   更轻量级   ,   Docker    容器内的应用步伐是   直接运行   在   宿主内核中   的,容器内没有本身的内核,也没有举行硬件虚拟   

   运行在容器上的docker的步伐,直接使用的都是宿主机的硬件资源,因此在cpu、内存、利用率上,Docker将会在效率上具有更大的优势,Docker直接利用宿主机的体系内核,避免了虚拟机启动时所需要的体系引导时间和操作体系运行的资源斲丧,利用Docker能够在几秒钟之内启动大量的容器,是虚拟机无法办到的。快速启动低资源斲丧的长处,使Docker在弹性云平台自动运维体系方面具有很好的应用场景。容器的启动时间是秒级的,大量节约开辟、测试、部署的时间,还有一个非常关键的点,Docker能够高效地部署和扩容,Docker容器险些可以在恣意平台上运行,包括虚拟机、物理机、公有云、私有云、个人电脑、服务器等,这种兼容性,可以让用户把一个应用步伐从一个平台直接迁移到别的一个平台。但是,虚拟机的安全性比容器好一些,docker与宿主机共享内核、文件体系等资源,更有可能对其他容器、宿主机造成影响​​​​​​​
  

      因此   Docker   容器要比传统虚拟机   占用资源更小   、   体系支持量更大   、   启动速度更快   、   更容易        维护和扩展       Docker官网:   https://hub.docker.com    1.2、为什么要使用 Docker 

      除了刚才说的   Docker   容器要比传统虚拟机占用资源更小、体系支持量更大、启动速度更快、 更容易维护和扩展外,Docker   照旧   世界领先的软件容器平台      (1).开辟人员利用  Docker  快速部署调试  我们的应用    (2).开辟人员利用  Docker  可以消除协作编码时  “  在我的呆板上可正常工作,其他呆板不能正     常工作  ”  的题目,  Docker  可以  提供一致的运行环境  ,开辟过程中一个常见的题目是环境一致     性题目,由于开辟环境、测试环境、生产环境不一致,导致有些  bug  并未在开辟过程中被发现    (3).运维人员利用  Docker  可以在隔离容器中并行运行和管理应用       (4).Serverless    也是基于   docker    容器技术        1.4、学习 Docker 必备基础

            docker      容器都是基于      linux      内核,所以学习      docker      必须具备      linux      基础,假如不会      linux 请参:     一些常常使用的linux命令,     linux内存、cpu、进程、端口、硬盘管理,     Linux 目录结构先容              Docker 环境要求

    (1).linux 体系

         使用安装docker需要的最小内核是 3.10,Centos7 和 Centos8 都能满足要求,查看内核命令: uname -r
        (2).Windows

         安装 docker 发起使用 win10
        (3).macOS

         must be version 10.14 or newer
           二、Docker 的安装 

2.1Windows 中安装 Docker

      注意   :windows操作体系需要启用    Hyper-V    和适用    Linux    的子体系           Hyper-V    是    微软开辟的虚拟机    ,类似于    VMWare    或    VirtualBox    ,    仅适用于 Windows 10    ,这           是     Docker Desktop for Windows         所使用的虚拟机,但是,这个虚拟机一旦启用,    QEMU    、           VirtualBox     或     VMWare Workstation 15     及以下版本将无法使用,假如必须在电脑上使用其           他虚拟机(例如开辟     Android     应用必须使用的模拟器),请不要使用     Hyper-V      


2.1.1、下载软件包 

   下载软件包:https://docs.docker.com/engine/install/ 
   


2.1.2、安装软件

   双击软件,点击'下一步',安装即可
  


   注意:此方法仅适用于 Windows 10 操作体系专业版、企业版、教育版和部门家庭版 
  2.1.3、运行软件

   假如第一次打开提示下面错误,请下载安装 wslupdatex64.mis后重启 docker 
  
 

    下载 wslupdatex64.mis 安装后重启 docker
  
 2.1.4、镜像加速


      鉴于国内网络题目,后续拉取    Docker    镜像十分缓慢,可以需要配置加速器来解决,可以使用阿里的镜像地点:https://02xz0m84.mirror.aliyuncs.com       在任务栏点击    Docker for mac    应用图标    -> Perferences... -> Docker Engine   
  1. {
  2. ... "registry-mirrors": ["https://02xz0m84.mirror.aliyuncs.com"]
  3. ...
  4. }
复制代码
 

2.1.5、通过运行 hello world 映像来验证 Docker 引擎安装是否精确 

  1. docker run hello-world
  2. [root@localhost /]# docker run hello-world
  3. Unable to find image 'hello-world:latest' locally
  4. latest: Pulling from library/hello-world
  5. b8dfde127a29: Pull complete
  6. Digest: sha256:df5fxxx491a9e
  7. Status: Downloaded newer image for hello-world:latest
  8. Hello from Docker!
  9. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
  10. 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
  11. 3. The Docker daemon created a new container from that image which runs the
  12. executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it
  13. to your terminal. To try something more ambitious, you can run an Ubuntu container with:
  14. $ docker run -it ubuntu bash
  15. Share images, automate workflows, and more with a free Docker ID:
  16. https://hub.docker.com/
  17. For more examples and ideas, visit:
  18. https://docs.docker.com/get-started/
复制代码
 2.2Macos 中安装 Docker

2.2.1、下载安装

   下载地点:https://docs.docker.com/docker-for-mac/install/
  

      如同    macOS    别的软件一样,安装也非常简单,双击下载的    .dmg    文件,然后将图标拖拽到 Application   文件夹即可   

    从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登岸密码,输入即可
    第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口 
  

   启动终端后,通过命令可以查抄安装后的 Docker 版本 
  1. docker --version
复制代码
2.2.2、镜像加速

   操作同windows镜像加速一致,之后可以通过 docker info 来查看是否配置成功
  1. $ docker info
  2. ... Registry Mirrors:
  3. http://hub-mirror.c.163.com
  4. Live Restore Enabled: false
复制代码
2.2.3、通过运行 hello world 映像来验证 Docker 引擎安装是否精确

      启动    hello-world    容器     
  1. docker run hello-world
  2. [root@localhost /]# docker run hello-world
  3. Unable to find image 'hello-world:latest' locally
  4. latest: Pulling from library/hello-world
  5. b8dfde127a29: Pull complete
  6. Digest: sha256:df5f5184104426b65967e016ff2ac0bfcd44ad7899ca3bbcf8e44e4461491a9e
  7. Status: Downloaded newer image for hello-world:latest
  8. Hello from Docker!
  9. This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
  10. 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
  11. 3. The Docker daemon created a new container from that image which runs the
  12. executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it
  13. to your terminal. To try something more ambitious, you can run an Ubuntu container with:
  14. $ docker run -it ubuntu bash
  15. Share images, automate workflows, and more with a free Docker ID:
  16. https://hub.docker.com/
  17. For more examples and ideas, visit:
  18. https://docs.docker.com/get-started/
复制代码
2.3Linux 中安装 docker

         发起使用     Centos7     或者     Centos8    ,    Centos7     和     Centos8     用法配置都是一样的          linux 安装     docker     官方文档:    https://docs.docker.com/install/linux/docker-ce/centos/       2.3.1Linux 中安装 Docker 的准备工作

   为了方便测试请关闭 selinux、关闭防火墙 
   SELinux 防火墙的设置:
  1. [root@localhost ~]# getenforce
  2. Disabled
  3. 修改/etc/selinux/config 文件
  4. 将 SELINUX=enforcing 改为 SELINUX=disabled
复制代码
  Firewalld   防火墙的设置:    见  【精选】CentOS8防火墙相干命令   
  1. 1、firewalld 的基本使用:
  2. 启动: systemctl start firewalld
  3. 关闭: systemctl stop firewalld
  4. 查看状态: systemctl status firewalld
  5. 开机禁用 : systemctl disable firewalld
  6. 开机启用 : systemctl enable firewalld
  7. 2、firewall-cmd 的基本使用:
  8. 那怎么开启一个端口呢:
  9. firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent 永久生效,
  10. 没有此参数重启后失效)
  11. 重新载入:
  12. firewall-cmd --reload 修改 firewall-cmd 配置后必须重启
  13. 查看:
  14. firewall-cmd --zone= public --query-port=80/tcp
  15. 删除:
  16. firewall-cmd --zone= public --remove-port=80/tcp --permanent
  17. 查看所有打开的端口:
  18. firewall-cmd --zone=public --list-ports
复制代码

  2.3.2Linux Centos 中安装 Docker 

安装需要的软件包

  
  1. yum install -y yum-utils
复制代码
配置 docker

  
  1. yum-config-manager --add-repo
  2. https://download.docker.com/linux/centos/d
  3. ocker-ce.repo
复制代码
         
  1. 或者阿里云源
  2. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.re
  3. po
复制代码
  
  1. yum search docker
复制代码
   安装 docker

         
  1. yum install docker-ce docker-ce-cli containerd.io -y
复制代码
   2.3.3 、启动 docker

   
  1. systemctl start docker
复制代码
   开机启动

   
  1. systemctl enable docker
复制代码
   docker 状态

   
  1. systemctl status docker
复制代码
   查看自启动

   
  1. systemctl list-unit-files|grep enabled
  2. systemctl list-unit-files | grep enabled |grep docker
复制代码
   第一个 docker 命令

   
  1. docker info
复制代码
  
  1. [root@localhost zph]# docker info
  2. Client:
  3. Context:    default
  4. Debug Mode: false
  5. Plugins:
  6.   app: Docker App (Docker Inc., v0.9.1-beta3)
  7.   buildx: Docker Buildx (Docker Inc., v0.7.1-docker)
  8.   scan: Docker Scan (Docker Inc., v0.12.0)
  9. Server:
  10. Containers: 31
  11.   Running: 2
  12.   Paused: 0
  13.   Stopped: 29
  14. Images: 391
  15. Server Version: 20.10.12
  16. Storage Driver: overlay2
  17.   Backing Filesystem: xfs
  18.   Supports d_type: true
  19.   Native Overlay Diff: true
  20.   userxattr: false
  21. Logging Driver: json-file
  22. Cgroup Driver: cgroupfs
  23. Cgroup Version: 1
  24. Plugins:
  25.   Volume: local
  26.   Network: bridge host ipvlan macvlan null overlay
  27.   Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
  28. Swarm: inactive
  29. Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
  30. Default Runtime: runc
  31. Init Binary: docker-init
  32. containerd version: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
  33. runc version: v1.0.2-0-g52b36a2
  34. init version: de40ad0
  35. Security Options:
  36.   seccomp
  37.    Profile: default
  38. Kernel Version: 4.18.0-348.el8.x86_64
  39. Operating System: CentOS Linux 8
  40. OSType: linux
  41. Architecture: x86_64
  42. CPUs: 1
  43. Total Memory: 782MiB
  44. Name: localhost.localdomain
  45. ID: DA45:YS5F:4YIO:2ZL3:U4YN:JISO:CWPI:W3A3:OBV3:PGDO:7ZTP:KNPX
  46. Docker Root Dir: /var/lib/docker
  47. Debug Mode: false
  48. Registry: https://index.docker.io/v1/
  49. Labels:
  50. Experimental: false
  51. Insecure Registries:
  52.   127.0.0.0/8
  53. Live Restore Enabled: false
复制代码
   第二个命令查看 docker 版本

   
  1. [root@localhost zph]# docker --version
  2. Docker version 20.10.12, build e91ed57
复制代码
   2.3.4、安装指定版本的 docker

         
           要安装      特定版本      的       Docker Engine      ,请在       repo       中列出可用版本,然后选择并安装: 列出并排序您的存储库中可用的版本,此示例按版本号对效果举行排序,从高到低, 并被截断               
  1. yum list docker-ce --showduplicates | sort -r
复制代码
  1. sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.i
  2. o
复制代码
2.3.5docker daemon.json 配置阿里云加速器

   
     当需要对    docker   服务举行调整配置时,不消去修改主文件    docker.service    的参数,通过        daemon.json    配置文件来管理,更为安全、合理   
  1. mkdir -p /etc/docker
  2. vi /etc/docker/daemon.json
  3. {
  4. "registry-mirrors": ["https://02xz0m84.mirror.aliyuncs.com"]
  5. }
复制代码
   假如没有/etc/docker 这个目录就创建这个目录,然后重新加载 daemon 重启 docker
  加载配置文件

  1. systemctl daemon-reload
  2. systemctl restart docker
  3. docker info
复制代码
2.3.6、通过运行 hello world 映像来验证 Docker 引擎安装是否精确

   启动 hello-world 容器
  1. [root@localhost docker]# docker run hello-world
  2. Unable to find image 'hello-world:latest' locally
  3. latest: Pulling from library/hello-world
  4. 719385e32844: Pull complete
  5. Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
  6. Status: Downloaded newer image for hello-world:latest
  7. Hello from Docker!
  8. This message shows that your installation appears to be working correctly.
  9. To generate this message, Docker took the following steps:
  10. 1. The Docker client contacted the Docker daemon.
  11. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
  12.     (amd64)
  13. 3. The Docker daemon created a new container from that image which runs the
  14.     executable that produces the output you are currently reading.
  15. 4. The Docker daemon streamed that output to the Docker client, which sent it
  16.     to your terminal.
  17. To try something more ambitious, you can run an Ubuntu container with:
  18. $ docker run -it ubuntu bash
  19. Share images, automate workflows, and more with a free Docker ID:
  20. https://hub.docker.com/
  21. For more examples and ideas, visit:
  22. https://docs.docker.com/get-started/
复制代码
2.3.7、卸载 docker

(1).卸载 Docker Engine、CLI 和 Containerd 包:

  
  1. $ sudo yum remove docker-ce docker-ce-cli containerd.io
复制代码
(2).删除所有镜像、容器和卷

      主机上的映像、容器、卷或自定义配置文件不会自动删除,使用命令删除     
  1. $ sudo rm -rf /var/lib/docker
  2. $ sudo rm -rf /var/lib/containerd
复制代码
    必须手动删除任何已编辑的配置文件
    2.4、阿里云 Docker 镜像加速器

     访问 https://www.aliyun.com/ 搜刮 “容器镜像服务”
   


[下一节][Docker]二.Docker 镜像,仓库,容器先容以及详解 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表