發表文章

目前顯示的是 3月, 2015的文章

使用現成的 docker images ,以 mtchang/lamp 為例

就練習 docker 的過程,我用很笨的方式做了一個 docker images 以 LAMP 服務為例,底下為這個的說明: docker hub 的連結   https://registry.hub.docker.com/u/mtchang/lamp/   1. 使用這個 docker images # 從 docker hub 抓取這個版本的 lamp $  sudo docker pull mtchang/lamp # 看看本地端的 images 是否抓好了 $  sudo docker images REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE mtchang/lamp        latest              59480b898c91        7 minutes ago       578.1 MB ...(skip)... # 以 mtchang/lamp 的 images 啟動一個 container ,動作是本地端的 tcp 8080:對應到 container 中的 tcp 80 port # 將本地端指定的目錄 對應到 伺服器端目錄 ,並且啟動 /usr/bin/supervisord 讓 container 可以停在系統內 # sudo docker run -d -p 8080:80 -v 本地端目錄:伺服器端目錄 mtchang/lamp /usr/bin/supervisord # example: $  sudo docker run ...

透過用 dockerfile 配置可以快速生成 docker image 並實現 container 部署

圖片
透過用 dockerfile 配置可以快速生成 docker image 並實現 container 部署 ref:  http://dockerone.com/article/101   範例: https://registry.hub.docker.com/u/tutum/lamp/dockerfile/   官方說明文件: https://docs.docker.com/articles/dockerfile_best-practices/   (1) 本機 dockerfile 建立 # 在本地端的目錄下,建立一個檔案名稱為 Dockerfile # # FROM:你的 base image 為基底 # MAINTAINER:維護 images 的人 # RUN:在 images 建立過程執行的指令 # ADD:將本機的檔案或遠端的檔案加入到 image 內的目錄 # 語法請參考: https://docs.docker.com/reference/builder/ # 底下 Dockerfile 參考  https://registry.hub.docker.com/u/tutum/lamp/dockerfile/   mtchang@mt ~/SCM_code/docker/apdemo $  vim Dockerfile FROM ubuntu:latest MAINTAINER mtchang # Install packages ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \   apt-get -y install supervisor git apache2 libapache2-mod-php5 mysql-server php5-mysql pwgen php-apc php5-mcrypt && \   echo "ServerName localhost" >> /etc/apache2/apache2.conf ...

docker 應用情境案例(2):把這個 container 提交並且上傳到 docker hub

# 把系統中最後狀態的 container commit ,並且上傳 docker hub 提供分享。 # 先使用 docker ps -a 觀看 container ID mtchang@mt ~ $  sudo docker ps -a CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES …(skip) ... b29f95d30b68        ubuntu:14.04        "/bin/bash"         20 hours ago        Exited (0) 17 minutes ago   # 使用 docker commit  提交 -m 為提交的說明 -a 為作者資訊 #  b29f95d30b68 為提交的 container ID #  mtchang/lamp 為 REPOSITORY[:TAG]  ,在本機提交後顯示成為 docker images 的 REPOSITORY 及 TAG ,並且產生一個新的 hash code mtchang@mt ~ $  sudo docker commit -m="jangmt/lamp v1" -a="mtchang" b29f95d30b68 mtchang/lamp cfa9495f5d8f...

Docker 實作與應用講義

Docker 實作與應用講義 講義文字說明版: https://docs.google.com/document/d/1sR11ZLgYToPp68fGM4dVhUaUKf4M-OKjL0KIXTbWf5Y/pub 講義圖片來源均來自網路上,詳細來源有寫在文字版內。

有關於 Docker 的安裝

圖片
Docker 的運作是在 Linux kernel 的基礎上,在非 Linux 的平台如 Windows 他是透過 輕量級的 VM 元件產生一個虛擬機器在系統上執行,這個元件叫做 Boot2Docker ( https://docs.docker.com/installation/windows/ ),所以跑起來和 Linux 不太一樣。所以在 MAC OS X 上面的 Docker 用的 Boot2Docker( https://docs.docker.com/installation/mac/  ) 也是用類似的方式達成的。   ref:  https://docs.docker.com/installation/mac/   我不建議在非 Linux 平台上面使用 Docker ,使用一個完整的 Linux 來使用 Docker 才是較為正確的方式。 ref:  https://docs.docker.com/installation/mac/   目前在 ubuntu 及 centos 可以用的的維護套件名稱為 docker.io , ubuntu 由   http://www.ubuntuupdates.org/ppa/docker  這裡在維護提供。  Centos 7的 Docker 從 RHEL7 重新編譯,目前收錄在 CentOS-Extras 套件庫中(   http://wiki.centos.org/zh-tw/Cloud/Docker  )。 如果可以建議你使用 ubuntu 最新的14.04 LTS 版本 http://www.ubuntu-tw.org/modules/tinyd0/   Linux  mint 對應 Ubuntu 14.04 的版本為 Linux Mint 17.1 Rebecca http://www.linuxmint.com/download.php   使用 CnetOS 7 最新的版本來安裝 http://www.centos.org/download/   如果你不是用...

docker 應用情境案例(1):一個 Apache2 + PHP 服務安裝為例

# 啟動一個以 ubuntu image為主 的 container , 名稱命名為 jangmt0305 ,並將本地端的 tcp port 8080 對應到 container  80 ,並且 -i 將 STDIN 保留, -t 取得一個虛擬終端機,並執行 /bin/bash  的程序。 mtchang@mt ~ $  sudo docker run --name="jangmt0305" -p 8080:80 -i -t ubuntu /bin/bash # 底下為在 docker container 內的 /bin/bash 執行 root@b29f95d30b68:/# ifconfig eth0      Link encap:Ethernet  HWaddr 02:42:ac:11:00:09             inet addr:172.17.0.9  Bcast:0.0.0.0  Mask:255.255.0.0           inet6 addr: fe80::42:acff:fe11:9/64 Scope:Link           UP BROADCAST RUNNING  MTU:1500  Metric:1           RX packets:6 errors:0 dropped:0 overruns:0 frame:0           TX packets:6 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:0           RX bytes:508 (508.0 B)  TX bytes:5...

CentOS 7 的 Docker 服務安裝

# Install Docker in CentOS 7 , lsb_release 確定一下目前的 linux 版本 [mtchang@mtchang ~]$   sudo lsb_release -a LSB Version:        :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID:        CentOS Description:        CentOS Linux release 7.0.1406 (Core) Release:        7.0.1406 Codename:        Core # 直接安裝 docker 和 docker-registry [mtchang@mtchang ~]$  sudo yum -y install docker docker-registry # 在 centos 7 使用 systemctl 管控 docker.service ,這裡是把服務預設開機啟動 [mtchang@mtchang ~]$  sudo systemctl enable docker.service ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service' ...