單機編排之Docker Compose

當在宿主機啓動較多的容器時候,若是都是手動操做會以爲比較麻煩並且容器出錯,這個時候推薦使用docker 單機編排工具docker compose,Docker Compose 是docker容器的一種編排服務,docker compose是一個管理多個容器的工具,好比能夠解決容器之間的依賴關係,就像啓動一個web就必須得先把數據庫服務先啓動同樣,docker compose 徹底能夠替代docker run啓動容器。
#github 地址https://github.com/docker/compose
1.1:基礎環境準備:
1.1.1:安裝python環境及pip命令:  
root@host-172-16-99-151:~# apt-get install python-pip -y
root@host-172-16-99-151:~# pip install --upgrade pip
注:centos系統的操做以下
# yum install https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm -y
# yum install python-pip -y
# pip install --upgrade pip
 
1.1.2:安裝docker compose:
root@host-172-16-99-151:~# apt-get install docker-compose
注:centos系統 yum install -y docker-compose
1.1.3:驗證版本:
root@host-172-16-99-151:~# docker-compose  version
1.1.4:查看幫助:
root@host-172-16-99-151:~# docker-compose  --help
1.2:從 docker compose啓動單個容器:
目錄能夠在任意目錄,推薦放在有意義的位置。
root@host-172-16-99-151:~# mkdir docker-compose
root@host-172-16-99-151:~# cd docker-compose/
1.2.1:一個容器的docker compose文件:
設置一個yml格式的配置文件,所以要注意先後的縮進。
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml  
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  ports:
    - "80:80"
    - "443:443"
 
注:方便配置粘貼的小技巧
# echo 'set paste' > .vimrc
 
1.2.2:啓動容器:
必需要在docker compose文件所在的目錄執行:
root@host-172-16-99-151:~/docker-compose# docker-compose  up #前臺啓動
1.2.3:啓動完成:
1.2.4:web訪問測試:
1.2.5:後臺啓動服務:
#容器的在啓動的時候,會給容器自定義一個名稱
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.2.6:自定義容器名稱:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1  #自定義容器名稱
  ports:
    - "80:80"
    - "443:443"
 
更改docker compose裏面的容器名稱後在啓動容器,會從新初始化容器並更改容器名稱
1.2.7:驗證容器:
1.2.8:查看容器進程:
root@host-172-16-99-151:~/docker-compose# docker-compose  ps
 
1.3:從docker compose啓動多個容器:
1.3.1:編輯docker-compose文件:
root@host-172-16-99-151:~/docker-compose# cat docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  ports:
    - "80:80"
    - "443:443"
 
web2: #每個容器一個ID
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
 
1.3.2:從新啓動容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up –d
7.3.3:web訪問測試:
 
1.4:定義數據卷掛載:
1.4.1:建立數據目錄和文件:
root@host-172-16-99-151:~# mkdir -p /data/nginx  
root@host-172-16-99-151:~# echo "Test Nginx Volume" > /data/nginx/index.html
1.4.2:編輯compose配置文件:
root@host-172-16-99-151:~/docker-compose# vim docker-compose.yml
web1:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web1
  volumes:
    - /data/nginx:/usr/share/nginx/html
  ports:
    - "80:80"
    - "443:443"
 
web2:
  image: 172.16.99.148/baseimages/nginx:v2
  expose:
    - 80
    - 443
  container_name: nginx-web2
  ports:
    - "81:80"
    - "444:443"
1.4.3:重啓容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  up -d
1.4.4:驗證web訪問:
#能夠發現,同一個文件,數據卷的優先級比鏡像內的文件優先級高
 
1.4.5:其餘經常使用命令:
1.4.5.2:重啓因此容器:
root@host-172-16-99-151:~/docker-compose# docker-compose restart
1.4.5.3:中止和啓動單個容器:
root@host-172-16-99-151:~/docker-compose# docker-compose stop  web1
root@host-172-16-99-151:~/docker-compose# docker-compose  start web1
1.4.5.4:中止和啓動全部容器:
root@host-172-16-99-151:~/docker-compose# docker-compose  stop
root@host-172-16-99-151:~/docker-compose# docker-compose  start
相關文章
相關標籤/搜索