回覆列表
  • 1 # 錢布斯

    步驟1:為我們的容器建立第一個映象

    # 以 centos 映象作為基礎映象,我們啟動自己的容器並在其中執行/bin/bash命令

    # 注:-t -i 引數用於建立一個虛擬的命令列。

    sudo docker run -t -i centos /bin/bash

    現在我們已經成功的運行了自己的第一個容器,並且進入到容器的命令列介面中。在容器中,我們執行下面的命令:

    yum -y update # 更新軟體包

    yum install which # 安裝which命令

    yum install git # 安裝Git

    安裝完成後,按 Ctrl + d 來退出容器的命令列。

    # 執行sudo docker ps -a,可以看到被我們終止的容器

    CONTAINER ID IMAGE COMMAND CREATED……

    da9031d3568f centos:6.4 /bin/bash 5 minutes ago…..

    把我們所做的改變提交到一個新的容器:

    # 這裡我們建立一個自己的基礎容器,容器中安裝好了文章中所需的常用工具。讀者的容器 id 可能與文章中的有所不同,以上一步 docker ps -a 的結果為準。

    sudo docker commit da90 custom/base

    容器成功提交後,執行 sudo docker images ,我們會看到剛才提交的容器(如下面的結果所示)。我們就以這個容器為基礎容器,再來建立一個新的容器。

    REPOSITORY TAG IMAGE ID CREATED

    custom/base latest 05b6cecd370b 2 minutes ago

    centos 6.4 539c0211cd76 10 months ago

    centos latest 539c0211cd76 10 months ago…

    步驟2:建立新的容器,並安裝 apache

    # 以 custom/base 容器為基礎,執行一個新的容器。

    sudo docker run -t -i custom/base /bin/bash

    # 安裝 httpd

    yum install httpd

    步驟3:再次提交新的容器

    按 Ctrl + d 來退出容器的命令列,然後執行命令:

    # 這個命令會把步驟2中我們安裝 httpd 帶來的改變提交到新的名為 custom/httpd 的容器映象中。你的容器 id 可能會和文章中有所不同,以 sudo docker ps -a 命令的結果為準。

    sudo docker commit aa6e2fc0b94c custom/httpd

    你應該已經發現了,我們建立了一個帶有 http 伺服器並可以複用的容器映象。你可以根據這種思想,為自己所需的每個元件都建立一個容器,然後把這些容器複用於開發環境或者生產環境。

    步驟7:執行 http 伺服器

    # -v will Mount a volume from VM to the container which was also shared from host to Vagrant VM.

    # -v 引數把主機共享給虛擬機器的一個卷掛載到容器中

    # -p forward VM port 80 to container port 80; VM port 80 is mapped to host port 8080 in Vagrantfile

    # -p 引數把虛擬機器的80埠對映到容器的80埠;虛擬機器的80埠在 Vagrantfile 中被繫結到主機的8080埠,也就是:主機8080->虛擬機器80->容器80

    sudo docker run -t -i -p 80:80 -v /vagrant/htdocs:/var/www/html custom/httpd /bin/bash

    # 啟動 Apache

    apachectl -k start

  • 中秋節和大豐收的關聯?
  • 你支援摩托車在高速公路上行駛嗎?