欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CentOS 7安裝Docker服務詳細過程

 更新時間:2016年11月16日 10:25:59   作者:shaonbean  
這篇文章主要為大家介紹了CentOS 7安裝Docker服務詳細過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Docker 簡介

Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker 官網(wǎng)http://www.docker.com/
Docker 官方文檔:https://docs.docker.com/
Docker Github 地址:https://github.com/docker/docker
Docker 倉庫:https://hub.docker.com/
Docker 中文社區(qū):http://www.docker.org.cn/book/docker
Docker 應用場景:https://www.zhihu.com/question/22969309

1.1、什么是Docker?

Docker是基于Go語言實現(xiàn)的云開源項目,誕生于2013年初,最初發(fā)起者是dotcloud公司。
Docker是一個開源的引擎,可以輕松的為任何應用創(chuàng)建一個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎(chǔ)應用平臺。
docker中文社區(qū)
Docker的主要目標是'Build,Ship and Run Any App Anywhere',即通過對應用組件的封裝(Packing)、分發(fā)(Distribution)、部署(Deployment)、運行(Runtime)等生命周期的管理,達到應用組件級別的“一次封裝,多次運行”。這里的應用組件,既可以是一個Web應用,也可以是一套數(shù)據(jù)庫服務,甚至是一個操作系統(tǒng)或編輯器。

1.2、為什么要使用Docker?

Docker在正確的地點,正確的時間順應了正確的趨勢--即高效的構(gòu)建應用。

更快速地的交付和部署。

更高效的資源利用

更輕松的更新部署

更簡單的更新管理

Docker與虛擬機比較

   Docker容器很快,啟動和停止可以秒級實現(xiàn),相比傳統(tǒng)的虛擬機方式快很多
   Docker容器對系統(tǒng)資源需求很少,一臺主機上面可以運行數(shù)千個Docker容器
   Docker通過類似Git的操作來方便用戶獲取、分布和更新應用鏡像,指令簡單,學習成本較低
   Docker通過Dockerfile配置文件來支持靈活的自動化創(chuàng)建和部署機制,提高工作效率

1.3、虛擬化與Docker

    虛擬化是一個通用的概念,在不通領(lǐng)域有著不同的理解。在計算機領(lǐng)域,一般是指計算虛擬化(Computing Virtualization),或服務器虛擬化。

    虛擬化的核心是對資源進行抽象,目標往往是為了在同一主機上運行多個操作系統(tǒng)或應用,從而提高系統(tǒng)資源的利用率,同時帶來降低成本,方便管理和容錯容災。

    虛擬化可分為基于硬件的虛擬化和基于軟件的虛擬化?;谲浖奶摂M化又分為應用虛擬化和平臺虛擬化。平臺虛擬化又細分如下幾個子類:

         完全虛擬化。虛擬機模擬完整的底層硬件環(huán)境和特權(quán)指令的執(zhí)行過程,客戶操作系統(tǒng)無需進行修改。例如VMware Workstation,VirtulBox,QEMU等
         硬件輔助虛擬化。利用硬件輔助支持處理敏感指令來實現(xiàn)完全虛擬化的功能,客戶端操作系統(tǒng)無需更改,例如Xen,KVM等
         部分虛擬化。只針對部分硬件資源進行虛擬化,客戶端操作系統(tǒng)需要進行更改。
         超虛擬化。部分硬件接口以軟件的形式提供給客戶機操作系統(tǒng),客戶機操作系統(tǒng)需要進行更改。
         操作系統(tǒng)級虛擬化。內(nèi)核通過創(chuàng)建多個虛擬的操作系統(tǒng)實例來隔離不同的進程,Docker技術(shù)。

Docker 安裝

安裝Docker是操作系統(tǒng)級虛擬化工具,它可以在Containers中自動部署應用程序
安裝docker

[root@linuxprobe~]# yum -y install docker
[root@linuxprobe~]# systemctl start docker
[root@linuxprobe~]# systemctl enable docker 
[root@linuxprobe ~]# systemctl status docker # 查看docker狀態(tài)
● docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
 Active: active (running) since Wed 2016-10-26 19:38:40 CST; 12s ago
  Docs: http://docs.docker.com
 Main PID: 3762 (docker-current)
 CGroup: /system.slice/docker.service
   └─3762 /usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald

Oct 26 19:38:39 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:39.844803185+08:00" level=info msg="devmapper: Successfully created filesystem xfs on device docker-253:0-104354176-base"
Oct 26 19:38:39 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:39.994708787+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.018129400+08:00" level=info msg="Firewalld running: true"
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.294869786+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can ...red IP address"
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.567994904+08:00" level=info msg="Loading containers: start."
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568039413+08:00" level=info msg="Loading containers: done."
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568047306+08:00" level=info msg="Daemon has completed initialization"
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.568058527+08:00" level=info msg="Docker daemon" commit=cb079f6-unsupported execdriver=native-0.2 graphdriver=devicemapper version=1.10.3
Oct 26 19:38:40 linuxprobe.org docker-current[3762]: time="2016-10-26T19:38:40.572491688+08:00" level=info msg="API listen on /var/run/docker.sock"
Oct 26 19:38:40 linuxprobe.org systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

下載官方鏡像并創(chuàng)建一個Container,并在Container中輸出“Welcome to the Docker World”

[root@linuxprobe ~]# docker pull centos
Using default tag: latest
Trying to pull repository docker.io/library/centos ... 
latest: Pulling from docker.io/library/centos
08d48e6f1cff: Pull complete 
Digest: sha256:b2f9d1c0ff5f87a4743104d099a3d561002ac500db1b9bfa02a783a46e0d366c
Status: Downloaded newer image for docker.io/centos:latest
[root@linuxprobe ~]# docker run centos /bin/echo "Welcome to the Docker World"
Welcome to the Docker World

使用“i”和“t”選項連接到Container的交互會話,如下所示。如果從Container會話退出,則Container的進程完成

[root@linuxprobe ~]# docker run -i -t centos /bin/bash
[root@82699d79557c /]# uname -a
Linux 82699d79557c 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@82699d79557c /]# exit
exit
[root@linuxprobe ~]# #back

如果從容器會話中退出并保持容器的進程,請按Ctrl + p和Ctrl + q鍵

[root@linuxprobe ~]# docker run -i -t centos /bin/bash
[root@a05c7fd0a54f /]# [root@linuxprobe ~]# 
[root@linuxprobe ~]# docker ps
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES
a05c7fd0a54f  centos    "/bin/bash"   24 seconds ago  Up 23 seconds       trusting_fermat
[root@linuxprobe ~]# docker attach a05c7fd0a54f # connect docekr process
[root@a05c7fd0a54f /]# [root@linuxprobe ~]# docker kill a05c7fd0a54f # kill docker process
a05c7fd0a54f
[root@linuxprobe ~]# docker ps # 查看運行的docker服務
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES

Docker:添加鏡像

在容器中添加鏡像文件
例如,使用更新官方映像安裝httpd,并將其添加為容器的新映像。該容器是在每次執(zhí)行docker run命令時生成的,因此添加最新執(zhí)行的容器如下

[root@linuxprobe ~]# docker images
REPOSITORY    TAG     IMAGE ID   CREATED     SIZE
docker.io/centos  latest    0584b3d2cf6d  Less than a second ago 196.5 MB
# start a Container and install httpd
[root@linuxprobe ~]# docker run centos /bin/bash -c "yum -y update; yum -y install httpd"
[root@linuxprobe ~]# docker ps -a | head -2
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS    NAMES
f36383194ad4  centos    "/bin/bash -c 'yum -y" 2 minutes ago  Exited (0) 45 seconds ago       jolly_cray
      elegant_wright
[root@linuxprobe ~]# docker commit f36383194ad4 my_image/centos_httpd
[root@linuxprobe ~]# docker images
REPOSITORY    TAG     IMAGE ID   CREATED       SIZE
docker.io/centos  latest    0584b3d2cf6d  Less than a second ago 196.5 MB
my_image/centos_httpd latest   b0be2940865a  7 seconds ago    338.3 MB

訪問容器

root@linuxprobe ~]# docker run -it -p 8081:80 my_image/centos_httpd /bin/bash
[root@2f0d06526d42 /]# /usr/sbin/httpd &
[1] 14
[root@2f0d06526d42 /]# AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

[1]+ Done     /usr/sbin/httpd
[root@2f0d06526d42 /]# echo "httpd on Docker Container" > /var/www/html/index.html # exit with Ctrl+p, Ctrl+q
[root@2f0d06526d42 /]# [root@linuxprobe ~]# docker ps
CONTAINER ID  IMAGE     COMMAND    CREATED    STATUS    PORTS     NAMES
2f0d06526d42  my_image/centos_httpd "/bin/bash"   54 seconds ago  Up 52 seconds  0.0.0.0:8081->80/tcp hopeful_gates
[root@linuxprobe ~]# docker ps -a | head -2
CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS       PORTS     NAMES
2f0d06526d42  my_image/centos_httpd "/bin/bash"    27 minutes ago  Up 27 minutes     0.0.0.0:8081->80/tcp hopeful_gates

客戶端瀏覽器訪問

Docker:使用Dockerfile

使用Dockerfile并自動創(chuàng)建Docker鏡像
[1] Dockerfile的格式是[INSTRUCTION arguments],請參閱INSTRUCTION的以下說明。
INSTRUCTION  說明
MAINTAINER 它設(shè)置生成的圖像的作者字段。
RUN  當創(chuàng)建Docker鏡像時,它將執(zhí)行任何命令。
CMD   它將執(zhí)行任何命令當Docker容器將被執(zhí)行。
LABEL 它向圖像添加元數(shù)據(jù)。
EXPOSE 它通知Docker容器將在運行時偵聽指定的網(wǎng)絡(luò)端口。
ADD 它復制新文件,目錄或遠程文件URL。
COPY 它復制新的文件或目錄。 [ADD]的區(qū)別是,它不可能指定remore URL,也不會自動提取歸檔文件。
VOLUME 它創(chuàng)建具有指定名稱的裝入點,并將其標記為從本機主機或其他容器保存外部裝入的卷 USER它設(shè)置用戶名或UID。
WORKDIR 它設(shè)置工作目錄。

例如,創(chuàng)建一個Dockerfile來安裝httpd并添加index.html,并使用80端口啟動httpd

[root@linuxprobe ~]# vim Dockerfile 
# create new
FROM centos
MAINTAINER linuxprobe <admin@linuxprobe.org>
RUN yum -y install httpd
RUN echo "Hello LinuxProbe DockerFile" > /var/www/html/index.html
EXPOSE 80
CMD ["-D", "FOREGROUND"]
ENTRYPOINT ["/usr/sbin/httpd"]
[root@linuxprobe ~]# docker build -t web_server:latest . 
Sending build context to Docker daemon 21.5 kB
Step 1 : FROM centos
 ---> 0584b3d2cf6d
Step 2 : MAINTAINER linuxprobe <admin@linuxprobe.org>
 ---> Running in 8064d0091e44
 ---> 940c8fbe4161
Removing intermediate container 8064d0091e44
Step 3 : RUN yum -y install httpd
 ---> Running in 3d37e4919fa9
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: mirrors.163.com
 * extras: ftp.sjtu.edu.cn
 * updates: mirrors.163.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: system-logos >= 7.92.1-1 for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package centos-logos.noarch 0:70.0.6-3.el7.centos will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package   Arch  Version      Repository Size
================================================================================
Installing:
 httpd    x86_64  2.4.6-40.el7.centos.4   updates  2.7 M
Installing for dependencies:
 apr    x86_64  1.4.8-3.el7     base   103 k
 apr-util   x86_64  1.5.2-6.el7     base   92 k
 centos-logos  noarch  70.0.6-3.el7.centos   base   21 M
 httpd-tools  x86_64  2.4.6-40.el7.centos.4   updates  83 k
 mailcap   noarch  2.1.41-2.el7     base   31 k

Transaction Summary
================================================================================
Install 1 Package (+5 Dependent packages)

Total download size: 24 M
Installed size: 31 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/apr-util-1.5.2-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for apr-util-1.5.2-6.el7.x86_64.rpm is not installed
Public key for httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm is not installed
--------------------------------------------------------------------------------
Total            382 kB/s | 24 MB 01:05  
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid  : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@CentOS)
 From  : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : apr-1.4.8-3.el7.x86_64          1/6 
 Installing : apr-util-1.5.2-6.el7.x86_64         2/6 
 Installing : httpd-tools-2.4.6-40.el7.centos.4.x86_64      3/6 
 Installing : centos-logos-70.0.6-3.el7.centos.noarch      4/6 
 Installing : mailcap-2.1.41-2.el7.noarch         5/6 
 Installing : httpd-2.4.6-40.el7.centos.4.x86_64       6/6 
 Verifying : apr-1.4.8-3.el7.x86_64          1/6 
 Verifying : httpd-tools-2.4.6-40.el7.centos.4.x86_64      2/6 
 Verifying : apr-util-1.5.2-6.el7.x86_64         3/6 
 Verifying : httpd-2.4.6-40.el7.centos.4.x86_64       4/6 
 Verifying : mailcap-2.1.41-2.el7.noarch         5/6 
 Verifying : centos-logos-70.0.6-3.el7.centos.noarch      6/6 

Installed:
 httpd.x86_64 0:2.4.6-40.el7.centos.4           

Dependency Installed:
 apr.x86_64 0:1.4.8-3.el7              
 apr-util.x86_64 0:1.5.2-6.el7             
 centos-logos.noarch 0:70.0.6-3.el7.centos          
 httpd-tools.x86_64 0:2.4.6-40.el7.centos.4         
 mailcap.noarch 0:2.1.41-2.el7             

Complete!
 ---> 3ce9abf4dfea
Removing intermediate container 3d37e4919fa9
Step 4 : RUN echo "Hello LinuxProbe DockerFile" > /var/www/html/index.html
 ---> Running in 297d8d666c8d
 ---> 3d185363045b
Removing intermediate container 297d8d666c8d
Step 5 : EXPOSE 80
 ---> Running in 017db517e06a
 ---> 5c855e478c3c
Removing intermediate container 017db517e06a
Step 6 : CMD -D FOREGROUND
 ---> Running in 6add13fca3cb
 ---> 7a219d9fa6e1
Removing intermediate container 6add13fca3cb
Step 7 : ENTRYPOINT /usr/sbin/httpd
 ---> Running in da4671709ee1
 ---> c0d84e256068
Removing intermediate container da4671709ee1
Successfully built c0d84e256068
[root@linuxprobe ~]# docker images
REPOSITORY    TAG     IMAGE ID   CREATED     SIZE
docker.io/centos  latest    0584b3d2cf6d  Less than a second ago 196.5 MB
web_server    latest    c0d84e256068  36 seconds ago   338.3 MB
my_image/centos_httpd latest    b0be2940865a  4 hours ago    338.3 MB
[root@linuxprobe ~]# docker run -d -p 80:80 web_server 
c37d25a405a8e0599bf54fe77d78c807a520242a21ccb15b18d6b6ee4d13415b
[root@linuxprobe ~]# docker ps
CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS     NAMES
c37d25a405a8  web_server    "/usr/sbin/httpd -D F" 6 seconds ago  Up 5 seconds  0.0.0.0:80->80/tcp  condescending_knuth
2f0d06526d42  my_image/centos_httpd "/bin/bash"    About an hour ago Up About an hour 0.0.0.0:8081->80/tcp hopeful_gat

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 樹莓派4b ubuntu19 server 安裝docker-ce的安裝步驟

    樹莓派4b ubuntu19 server 安裝docker-ce的安裝步驟

    這篇文章主要介紹了樹莓派4b ubuntu19 server 安裝docker-ce的安裝步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Docker安裝MySQL8.0的詳細步驟(附圖文!)

    Docker安裝MySQL8.0的詳細步驟(附圖文!)

    Windows上安裝MySQL相對來說會較為簡單,但是在Docker安裝就沒那么簡單了,下面這篇文章主要給大家介紹了關(guān)于Docker安裝MySQL8.0的詳細步驟,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Docker基礎(chǔ)學習之數(shù)據(jù)管理

    Docker基礎(chǔ)學習之數(shù)據(jù)管理

    我們在使用Docker 的時候,會產(chǎn)生很多數(shù)據(jù),比如web服務器啊,數(shù)據(jù)庫之類的,有時我們還需要備份或復制這些數(shù)據(jù),這就需要涉及到Docker的數(shù)據(jù)管理了。這篇文章就給大家詳細的介紹Docker的數(shù)據(jù)管理,感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • docker?swarm快速部署redis分布式集群的詳細過程

    docker?swarm快速部署redis分布式集群的詳細過程

    這篇文章主要介紹了docker?swarm快速部署redis分布式集群,只需要通過docker-compose.yml文件和一個啟動命令就完成redis分布式部署的方式,讓其分別部署在不同機器上,并實現(xiàn)集群搭建,需要的朋友可以參考下
    2022-10-10
  • 教你如何獲取Harbor的帶tag的鏡像清單

    教你如何獲取Harbor的帶tag的鏡像清單

    這篇文章主要介紹了如何利用Java語言實現(xiàn)獲取harbor中全部鏡像的帶tag的清單,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql) 實例代碼

    docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql) 實例代碼

    這篇文章主要介紹了docker環(huán)境下數(shù)據(jù)庫的備份(postgresql, mysql) ,需要的朋友可以參考下
    2019-05-05
  • Docker數(shù)據(jù)管理與網(wǎng)絡(luò)通信的使用

    Docker數(shù)據(jù)管理與網(wǎng)絡(luò)通信的使用

    這篇文章主要介紹了Docker數(shù)據(jù)管理與網(wǎng)絡(luò)通信的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • docker中通過nginx+confd動態(tài)生成配置的解決方案

    docker中通過nginx+confd動態(tài)生成配置的解決方案

    這篇文章主要介紹了docker:nginx+confd動態(tài)生成配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • docker start啟動容器后仍然exit狀態(tài)的解決

    docker start啟動容器后仍然exit狀態(tài)的解決

    這篇文章主要介紹了docker start啟動容器后仍然exit狀態(tài)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Docker上部署mysql8主從復制的實現(xiàn)

    Docker上部署mysql8主從復制的實現(xiàn)

    本文主要介紹了Docker上部署mysql8主從復制的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論