成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker CE for Linux安裝

littlelightss / 3517人閱讀

摘要:由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容器。持續(xù)交付和部署對開發(fā)和運(yùn)維人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn)行。如果安裝了這些版本,先卸載它們,以及相關(guān)的依賴項。設(shè)置源安裝所需要的包。

1. 背景 1.1 概述

Docker 使用 Google 公司推出的 Go 語言 進(jìn)行開發(fā)實現(xiàn),基于 Linux 內(nèi)核的 cgroup,namespace,以及 AUFS 類的 Union FS 等技術(shù),對進(jìn)程進(jìn)行封裝隔離,屬于 操作 系統(tǒng)層面的虛擬化技術(shù)。由于隔離的進(jìn)程獨(dú)立于宿主和其它的隔離的進(jìn)程,因此也稱其為容 器。最初實現(xiàn)是基于 LXC,從 0.7 版本以后開始去除 LXC,轉(zhuǎn)而使用自行開發(fā)的 libcontainer,從 1.11 開始,則進(jìn)一步演進(jìn)為使用 runC 和 containerd。

Docker 在容器的基礎(chǔ)上,進(jìn)行了進(jìn)一步的封裝,從文件系統(tǒng)、網(wǎng)絡(luò)互聯(lián)到進(jìn)程隔離等等,極 大的簡化了容器的創(chuàng)建和維護(hù)。使得 Docker 技術(shù)比虛擬機(jī)技術(shù)更為輕便、快捷。

1.2 為什么要使用 Docker

作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。

1. 更高效的利用系統(tǒng)資源

由于容器不需要進(jìn)行硬件虛擬以及運(yùn)行完整操作系統(tǒng)等額外開銷,Docker 對系統(tǒng)資源的利用 率更高。無論是應(yīng)用執(zhí)行速度、內(nèi)存損耗或者文件存儲速度,都要比傳統(tǒng)虛擬機(jī)技術(shù)更高 效。因此,相比虛擬機(jī)技術(shù),一個相同配置的主機(jī),往往可以運(yùn)行更多數(shù)量的應(yīng)用。

2. 更快速的啟動時間

傳統(tǒng)的虛擬機(jī)技術(shù)啟動應(yīng)用服務(wù)往往需要數(shù)分鐘,而 Docker 容器應(yīng)用,由于直接運(yùn)行于宿主 內(nèi)核,無需啟動完整的操作系統(tǒng),因此可以做到秒級、甚至毫秒級的啟動時間。大大的節(jié)約 了開發(fā)、測試、部署的時間。

3. 一致的運(yùn)行環(huán)境

開發(fā)過程中一個常見的問題是環(huán)境一致性問題。由于開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境不一 致,導(dǎo)致有些 bug 并未在開發(fā)過程中被發(fā)現(xiàn)。而 Docker 的鏡像提供了除內(nèi)核外完整的運(yùn)行 時環(huán)境,確保了應(yīng)用運(yùn)行環(huán)境一致性,從而不會再出現(xiàn) 「這段代碼在我機(jī)器上沒問題啊」 這 類問題。

4. 持續(xù)交付和部署

對開發(fā)和運(yùn)維(DevOps)人員來說,最希望的就是一次創(chuàng)建或配置,可以在任意地方正常運(yùn) 行。

使用 Docker 可以通過定制應(yīng)用鏡像來實現(xiàn)持續(xù)集成、持續(xù)交付、部署。開發(fā)人員可以通過 Dockerfile 來進(jìn)行鏡像構(gòu)建,并結(jié)合 持續(xù)集成(Continuous Integration) 系統(tǒng)進(jìn)行集成測試, 而運(yùn)維人員則可以直接在生產(chǎn)環(huán)境中快速部署該鏡像,甚至結(jié)合 持續(xù)部署(Continuous Delivery/Deployment) 系統(tǒng)進(jìn)行自動部署。

而且使用 Dockerfile 使鏡像構(gòu)建透明化,不僅僅開發(fā)團(tuán)隊可以理解應(yīng)用運(yùn)行環(huán)境,也方便 運(yùn)維團(tuán)隊理解應(yīng)用運(yùn)行所需條件,幫助更好的生產(chǎn)環(huán)境中部署該鏡像。

5. 更輕松的遷移

由于 Docker 確保了執(zhí)行環(huán)境的一致性,使得應(yīng)用的遷移更加容易。Docker 可以在很多平臺 上運(yùn)行,無論是物理機(jī)、虛擬機(jī)、公有云、私有云,甚至是筆記本,其運(yùn)行結(jié)果是一致的。 因此用戶可以很輕易的將在一個平臺上運(yùn)行的應(yīng)用,遷移到另一個平臺上,而不用擔(dān)心運(yùn)行 環(huán)境的變化導(dǎo)致應(yīng)用無法正常運(yùn)行的情況。

6. 更輕松的維護(hù)和擴(kuò)展

Docker 使用的分層存儲以及鏡像的技術(shù),使得應(yīng)用重復(fù)部分的復(fù)用更為容易,也使得應(yīng)用的 維護(hù)更新更加簡單,基于基礎(chǔ)鏡像進(jìn)一步擴(kuò)展鏡像也變得非常簡單。此外,Docker 團(tuán)隊同各 個開源項目團(tuán)隊一起維護(hù)了一大批高質(zhì)量的 官方鏡像,既可以直接在生產(chǎn)環(huán)境使用,又可以 作為基礎(chǔ)進(jìn)一步定制,大大的降低了應(yīng)用服務(wù)的鏡像制作成本。

7. 對比傳統(tǒng)虛擬機(jī)總結(jié)
特性 容器 虛擬機(jī)
啟動 秒級 分鐘級
硬盤使用 一般為MB 一般為GB
性能 接近原生 弱于
系統(tǒng)支持量 單機(jī)支持上千個容器 一般幾十個
1.3 環(huán)境

Cent OS 7

Docker 18.03.0-ce

2. 卸載舊版本

老版本的Docker被稱為docker或docker-engine。如果安裝了這些版本,先卸載它們,以及相關(guān)的依賴項。

sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-selinux 
                  docker-engine-selinux 
                  docker-engine
3. 安裝Docker 3.1 安裝Docker yum源

在新主機(jī)上首次安裝Docker CE之前,您需要設(shè)置Docker的yum源。之后,您可以從存儲庫安裝和更新Docker。

設(shè)置源

1. 安裝所需要的包。yum-utils提供了yum-config-manager功能,而devicemapper存儲驅(qū)動程序需要device-mapper-persistent-datalvm2
sudo yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2
2. 使用下面的命令來設(shè)置穩(wěn)定的yum源
sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo
3.2 安裝 Docker CE
1. 安裝最新版本的Docker CE
sudo yum install docker-ce

已安裝Docker,但未啟動。

2. 啟動Docker
sudo systemctl start docker
3. 使用阿里鏡像加速器

由于國內(nèi)的網(wǎng)絡(luò)原因需要使用阿里的鏡像加速器,登錄自己的阿里云官網(wǎng),找到鏡像加速器,根據(jù)提示進(jìn)行配置

4. 驗證
sudo docker run hello-world

輸入如下

Unable to find image "hello-world:latest" locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete 
Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1
Status: Downloaded newer image for hello-world:latest

Hello 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 the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/
5. 執(zhí)行sudo docker version

輸出如下

Client:
 Version:       18.03.0-ce      # 客戶端版本
 API version:   1.37
 Go version:    go1.9.4
 Git commit:    0520e24
 Built: Wed Mar 21 23:09:15 2018
 OS/Arch:       linux/amd64
 Experimental:  false
 Orchestrator:  swarm

Server:
 Engine:
  Version:      18.03.0-ce      # Docker-Engine版本
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   0520e24
  Built:        Wed Mar 21 23:13:03 2018
  OS/Arch:      linux/amd64
  Experimental: false
6. 執(zhí)行sudo docker info

輸出如下

Containers: 0                   # 容器數(shù)
 Running: 0                     # 運(yùn)行容器數(shù)
 Paused: 0                      # 暫停容器數(shù)
 Stopped: 0                     # 停止容器數(shù)
Images: 0
Server Version: 18.03.0-ce
Storage Driver: overlay2        # 存儲去掉
 Backing Filesystem: xfs        # 磁盤文件系統(tǒng)格式
 Supports d_type: true
 Native Overlay Diff: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: y6ulbxd4353ubvpi2p5g3d4zf
 Is Manager: true
 ClusterID: k19zirti3fcvq8fygqivg91lx
 Managers: 1
 Nodes: 2
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Autolock Managers: false
 Root Rotation In Progress: false
 Node Address: 10.32.2.202
 Manager Addresses:
  10.32.2.202:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-514.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.17GiB
Name: localhost
ID: E23S:ORX7:3KJA:2MPT:TRCU:VVAM:WOV6:6KUF:ABED:LWFQ:OHGJ:RQU6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
3.3 開啟Docker Remote API

修改配置文件

vim /usr/lib/systemd/system/docker.service

找到ExecStart=/usr/bin/dockerd行,修改如下。

ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock

編輯配置文件vim /etc/profile,寫入一下內(nèi)容,執(zhí)行source /etc/profile刷新

export DOCKER_HOST=127.0.0.1:2375

執(zhí)行命令

systemctl daemon-reload
systemctl restart docker

執(zhí)行curl http://127.0.0.1:2375/info驗證

輸出如下

{"ID":"HPZP:XIWJ:BZP7:YI47:UOLX:YLMM:LBF7:KV4E:Y2A7:ED6B:BHWB:FE4R","Containers":2,"ContainersRunning":0,"ContainersPaused":0,"ContainersStopped":2,"Images":2,"Driver":"overlay2","DriverStatus":[["Backing Filesystem","xfs"],["Supports d_type","true"],["Native Overlay Diff","true"]],"SystemStatus":null,"Plugins":{"Volume":["local"],"Network":["bridge","host","macvlan","null","overlay"],"Authorization":null,"Log":["awslogs","fluentd","gcplogs","gelf","journald","json-file","logentries","splunk","syslog"]},"MemoryLimit":true,"SwapLimit":true,"KernelMemory":true,"CpuCfsPeriod":true,"CpuCfsQuota":true,"CPUShares":true,"CPUSet":true,"IPv4Forwarding":true,"BridgeNfIptables":true,"BridgeNfIp6tables":true,"Debug":false,"NFd":20,"OomKillDisable":true,"NGoroutines":33,"SystemTime":"2018-04-08T15:41:52.725705339+08:00","LoggingDriver":"json-file","CgroupDriver":"cgroupfs","NEventsListener":0,"KernelVersion":"3.10.0-693.21.1.el7.x86_64","OperatingSystem":"CentOS Linux 7 (Core)","OSType":"linux","Architecture":"x86_64","IndexServerAddress":"https://index.docker.io/v1/","RegistryConfig":{"AllowNondistributableArtifactsCIDRs":[],"AllowNondistributableArtifactsHostnames":[],"InsecureRegistryCIDRs":["127.0.0.0/8"],"IndexConfigs":{"docker.io":{"Name":"docker.io","Mirrors":["https://0zs97su8.mirror.aliyuncs.com/"],"Secure":true,"Official":true}},"Mirrors":["https://0zs97su8.mirror.aliyuncs.com/"]},"NCPU":1,"MemTotal":1022570496,"GenericResources":null,"DockerRootDir":"/var/lib/docker","HttpProxy":"","HttpsProxy":"","NoProxy":"","Name":"localhost","Labels":[],"ExperimentalBuild":false,"ServerVersion":"18.03.0-ce","ClusterStore":"","ClusterAdvertise":"","Runtimes":{"runc":{"path":"docker-runc"}},"DefaultRuntime":"runc","Swarm":{"NodeID":"","NodeAddr":"","LocalNodeState":"inactive","ControlAvailable":false,"Error":"","RemoteManagers":null},"LiveRestoreEnabled":false,"Isolation":"","InitBinary":"docker-init","ContainerdCommit":{"ID":"cfd04396dc68220d1cecbe686a6cc3aa5ce3667c","Expected":"cfd04396dc68220d1cecbe686a6cc3aa5ce3667c"},"RuncCommit":{"ID":"4fc53a81fb7c994640722ac585fa9ca548971871","Expected":"4fc53a81fb7c994640722ac585fa9ca548971871"},"InitCommit":{"ID":"949e6fa","Expected":"949e6fa"},"SecurityOptions":["name=seccomp,profile=default"]}
3.4 設(shè)置開啟啟動
sudo systemctl enable docker.service
4. 安裝 Docker Compose
1. 運(yùn)行此命令下載最新版本的Docker Compose
sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
在上面寫的命令是本博客撰寫時的最新版本

上面的命令是一個例子,有可能會過時,為了確保使用最新的版本,請前往Github Compose repository release查看最新版本

2. 給可執(zhí)行文件添加權(quán)限
sudo chmod +x /usr/local/bin/docker-compose
3. 驗證安裝docker-compose --version

輸出如下:

docker-compose version 1.20.1, build 5d8c71b
本文首發(fā)于凌風(fēng)博客:Docker CE for Linux 安裝
作者:凌風(fēng)
參考資料:

Docker 官方安裝文檔

Docker Compose官網(wǎng)安裝文檔

Docker — 從入門到實踐

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27294.html

相關(guān)文章

  • Docker入門學(xué)習(xí)

    摘要:如無論哪個服務(wù)器,下載的文件內(nèi)容是一樣的。如果需要啟動,通過命令執(zhí)行完后,再打開文件,可以看到的了。 docker的官網(wǎng):https://www.docker.com/官方文檔:https://docs.docker.com/github: https://github.com/docker/lab... Docker類似虛擬機(jī),是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的、...

    xiaodao 評論0 收藏0
  • 2018年第48周-centos7下的docker安裝及常用命令

    摘要:下圖是與其他虛擬技術(shù)的對比圖。的目標(biāo)是,基于這個目標(biāo),將你需要發(fā)布的應(yīng)用組件及需要的環(huán)境配置都封裝成一個鏡像,然后基于鏡像創(chuàng)建容器并啟動運(yùn)行。這樣就可以達(dá)到組建級別的一次封裝,多次運(yùn)行。而默認(rèn)情況下,屬于用戶,需要權(quán)限才能訪問。 docker玩過很多次,但每次都是從零開始,所以這次而打算記錄下來,方便后面查詢。 docker的技術(shù)基礎(chǔ)是LXC虛擬化技術(shù),虛擬化技術(shù)有很多,有硬件層面和...

    lemon 評論0 收藏0
  • 一、docker安裝筆記

    摘要:出于安全考慮,一般系統(tǒng)上不會直接使用用戶。因此,更好地做法是將需要使用的用戶加入用戶組。建立組將當(dāng)前用戶加入組退出當(dāng)前終端并重新登錄,進(jìn)行如下測試。無需使用管理員權(quán)限測試運(yùn)行運(yùn)行列出鏡像倉庫名標(biāo)簽鏡像創(chuàng)建時間占用空間 CentOS 7 安裝 Docker CE 1. docker安裝步驟(基于yum方式) 1.1 查看當(dāng)前l(fā)inux內(nèi)核版本 uname -r #linux內(nèi)核要求3.1...

    JerryWangSAP 評論0 收藏0
  • 各平臺安裝和使用Docker的差異

    摘要:在上運(yùn)行使用系統(tǒng)要求開啟虛擬化的硬件支持可以通過命令來檢查或者更高版本至少內(nèi)存安裝最新點(diǎn)擊下載安裝下載的文件安裝完成后,啟動使用鏡像加速地址使用自帶的使用的系統(tǒng)要求運(yùn)行或者以上版本支持硬件虛擬化技術(shù)并且已啟用虛擬化安裝點(diǎn)擊下載運(yùn)行在上運(yùn)行使 在Mac上運(yùn)行Docker 使用Docker for Mac 系統(tǒng)要求 開啟虛擬化的硬件支持,可以通過命令來檢查:sysctl kern.hv_...

    Thanatos 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<