系統環境:
> mkdir ~/my_docker > cd ~/my_docker > git clone https://github.com/a-lang/Docker_centos5-lamp_php51.git > cd Docker_centos5-lamp_php51 > docker build -t alang/centos5-lamp_php51 .
TIP:
Dockerfile 在 EXPOSE 的設定,除了 80 port 以外,還有 rsync 873 port,這是非必要。
Image 建立完成後,執行 docker images 會顯示剛剛新建的 image。
> docker run -t -i alang/centos5-lamp_php51
TIPs:
- 按下 Ctrl+P, Ctrl+Q 可以退出 container 回到 host,但不會關閉 container。
- 執行 docker attach <container-id> 可以重新進入 container 的 console。
設定時區
container> rm -f /etc/localtime container> ln -s /usr/share/zoneinfo/Asia/Taipei /etc/localtime
輸入 Ctrl+P, Ctrl+Q 退出 container,執行這個指令儲存 image 剛剛的變更
> docker ps > docker commit <container-id> <image-name>
TIP:
儲存 image 時,建議可以在原有的 image-name 加上 v1。
系統環境:
> cd ~/my_docker > git clone https://github.com/a-lang/Docker_mindtouch1014.git > cd Docker_mindtouch1014 > docker build -t alang/mindtouch1014 .
啟動 images
> docker run -t -i -v /dockerVol/osslab-wiki/host_shared:/host_shared \ -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \ alang/mindtouch1014
設定 MySQL root 密碼
container> mysqladmin -u root password 'your-pass'
輸入 Ctrl+P, Ctrl+Q 退出 container,儲存 image v1
> docker ps > docker commit <container-id> alang/mindtouch1014:v1
停止 container
> docker ps > docker stop <container-id>
將以上檔案複製到 host 的 /dockerVol/osslab-wiki/host_shared 目錄
啟動 image
docker run -t -i \ -p 80:80 \ -p 10873:873 \ -v /dockerVol/osslab-wiki/host_shared:/host_shared \ -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \ -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \ alang/mindtouch1014:v1
複製設定檔
container:
> cp /host_shared/mindtouch.deki.startup.xml /etc/dekiwiki > cp /host_shared/mindtouch.host.conf /etc/dekiwiki
匯入資料庫
container:
mysql -u root -p mysql> create database wikidb; mysql> create user 'wikiuser'@'localhost' identified by 'db_pass'; mysql> grant all privileges on wikidb.* to 'wikiuser'@'localhost'; mysql> exit cd /host_shared/ mysql -u wikiuser -p wikidb < wikidb.sql
TIP:
要查詢設定檔內所設定的 DB 密碼,執行
sed -n '/db-password/p' /host_shared/mindtouch.deki.startup.xml
還原備份的 html.tgz
container:
cd /var/www/ tar xzf /host_shared/html.tgz chown -R dekiwiki:apache /var/www/dekiwiki
啟動 Dekiwiki 服務
container:
service dekiwiki start
檢查網站是否正常運作,如果有,繼續下述步驟:
編輯 /opt/startup.sh
最下方加上這一行
service dekiwiki start
輸入 Ctrl+P, Ctrl+Q 退出 container
將目前的 container 存在 v2 版的 image
host :
docker ps docker commit <container-id> alang/mindtouch1014:v2
image 最後啟動
docker run -t -i \ -p 80:80 \ -p 10873:873 \ -v /dockerVol/osslab-wiki/host_shared:/host_shared \ -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \ -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \ alang/mindtouch1014:v2
如果 Image v2 不再需要作任何修改,可以將 v2 存成最新版
docker run -t -i \ -p 80:80 \ -p 873:873 \ --name osslab-wiki \ -v /dockerVol/osslab-wiki/host_shared:/host_shared \ -v /dockerVol/osslab-wiki/var_lib_mysql:/var/lib/mysql \ -v /dockerVol/osslab-wiki/var_www_dekiwiki:/var/www/dekiwiki/ \ alang/mindtouch1014:v2
輸入 Ctrl+P, Ctrl+Q 退出 container
docker ps docker commit <container-id> alang/mindtouch1014
TIP:
儲存 image 不加 : <tag> 時,預設是 latest。
加上 --name 可以為 container 命名,管理上容易識別。