3 回答

TA貢獻1825條經驗 獲得超4個贊
步驟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

TA貢獻1811條經驗 獲得超4個贊
初次安裝部署好docker后,大多數鏡像可以從DockerHub 提取,但是大多數人都希望自己可以完全自定義一個鏡像,那么這里需要一個第三方工具 febootstrap epel6的源提供febootstrap的RPM包 yum install docker-io febootstrap -y service docker start chkconfig docker --level35 on 復制代碼 制作CentOS6.6鏡像目錄 febootstrap -i yum -i iputils -i iproute -i bash -i vim-minimal -i coreutils -i tar -i net-tools centos6 base -u 復制代碼 -i 表示鏡像里面安裝的RPM包(包括一些人為有必要的軟件包) centos6 表示鏡像的版本說明 base 表示生成的鏡像目錄 后面之后了系統安裝源和更新源為USTC 安裝執行后,會開始一系列的RPM包下載安裝,過程與yum類似,安裝完成后當前目錄會多了base目錄,里面就是一個鏡像的系統文件 進入base目錄等于進入鏡像的根目錄 [root@image ~]# cd base/ [root@image base]# ls bin boot dev etc home lib lib64 media mnt opt proc root sbin selinux ...
- 3 回答
- 0 關注
- 630 瀏覽
添加回答
舉報