日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker Review - Docker 概念 入门篇

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker Review - Docker 概念 入门篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 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 概念 入门篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。