docker容器與容器雲讀書筆記1

來源:互聯網
上載者:User

標籤:info   art   data   try   lis   警示   date   cat   source   

搭建docker應用棧

作業系統: ubuntu 16.04.1 LTS 案頭版

1. 準備工作

換網易源, gedit 會報一個metadata的警示, 不用理會, sudo apt-get update, sudo apt-get upgrade 之後就修複了

 

2. 安裝docker並啟動docker daemon

sudo apt-get install apt-transport-https ca-certificatessudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609Dsudo apt-get updatesudo apt-get install docker-enginesudo service docker start

 

3. 擷取應用棧各節點所需鏡像

sudo docker pull ubuntusudo docker pull djangosudo docker pull haproxysudo docker pull redis#擷取特定版本 sudo docker pull redis:3.0.6

 

4. 應用棧容器節點啟動

# 啟動redis容器sudo docker run -it --name redis-master redis /bin/bashsudo docker run -it --name redis-slave1 --link redis-master:master redis /bin/bashsudo docker run -it --name redis-slave2 --link redis-master:master redis /bin/bash# 啟動django容器sudo docker run -it --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app django /bin/bashsudo docker run -it --name APP2 --link redis-master:db -v ~/Projects/Django/App2:/usr/src/app django /bin/bash# 啟動haproxy容器sudo docker run -it --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp haproxy /bin/bash

 

5. redis master 主要資料庫容器節點配置

sudo docker inspect --format "{{ .Volumes }}" bc8e

報錯如下: Template parsing error: template: :1:2: executing "" at <.Volumes>: map has no entry for key "Volumes"

有建議使用 {{ .Config.Volumes }}

sudo docker inspect --format "{{ .Config.Volumes }}" bc8e
輸出 map[/data:{}]

grep大法好

sudo docker inspect bc8e | grep Source
"Source": "/var/lib/docker/volumes/xxxxxxx/_data"

之後需要 root 許可權, ubuntu 的 sudo cd 會報錯, 因為 cd 是 alias

sudo -scd /var/lib/docker/volumes/xxxxxxx/_datacp 你的redis檔案夾/redis.conf .vim redis.conf

需要修改以下參數

# bind 是必須要改的, 否則 slave 會找不到 master, 預設是 127.0.0.1bind 0.0.0.0

切換到容器中

# /var/lib/redis 這個檔案夾必須建立mkdir /var/lib/rediscd /datacp redis.conf /usr/local/bincd /usr/local/binredis-server redis.conf

 

6. redis slave 從資料庫容器節點的配置

redis.conf的修改項

slaveof master 6379

啟動方式相同

 

7. redis 資料庫容器節點測試

master

# redis-cli127.0.0.1:6379> set master bc8eOK127.0.0.1:6379> get master"bc8e"

slave

# redis-cli127.0.0.1:6379> get master"bc8e"

info 可以檢查目前redis狀態,  /var/log/redis/redis.log 可以查看日誌資訊, 如果master的資料沒有同步到 slave, 可以利用日誌協助排錯.

 

8. APP容器節點的配置

按照書中流程來即可, 直到 python manage.py syncdb 會報錯, 因為已經沒有這個命令了, 需要執行的是 python manage.py createsuperuser

 

9. HAProxy 容器節點的配置

# 會報錯
listen redis_proxy 0.0.0.0:6301
# 需要修改如下listen redis_proxy bind
0.0.0.0:6301

 

10. 應用棧訪問測試

原書的 http://172.17.0.9 是個迷之地址, 換成 http://127.0.0.1 或 http://localhost 可破.

 

docker容器與容器雲讀書筆記1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.