docker compose部署服务
生活随笔
收集整理的這篇文章主要介紹了
docker compose部署服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 用docker compose部署服務
- 需求:假如現在我們手里有很多容器,每個容器對應每個服務,有nginx容器,redis容器,mysql容器等?,F在我們需要批量化的去管理,批量啟動,停止,重啟等操作!當然你會說用shell,可是如何不用shell來完成需求呢,那就需要用到接下來介紹的docker compose了。
- docker compose可以方便我們快捷高效地管理容器的啟動、停止、重啟等操作,它類似于linux下的shell腳本,基于yaml語法,在該文件里我們可以描述應用的架構,比如用什么鏡像、數據卷、網絡模式、監聽端口等信息。我們可以在一個compose文件中定義一個多容器的應用(比如jumpserver),然后通過該compose來啟動這個應用。
- 安裝compose
| 1 2 3 4 5 6 7 8 9 10 | [root@chy?~]#??curl?-L?https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname?-s`-`uname?-m`?>?/usr/local/bin/docker-compose?//從官方下載一個最新的compose [root@chy?~]#?chmod?755?/usr/local/bin/docker-compose?//將權限設置為755 [root@chy?~]#?docker-compose?version docker-compose?version?1.17.0-rc1,?build?a0f95af docker-py?version:?2.5.1 CPython?version:?2.7.13 OpenSSL?version:?OpenSSL?1.0.1t??3?May?2016 Compose區分Version?1和Version?2(Compose?1.6.0+,Docker?Engine?1.10.0+)。 Version?2支持更多的指令。Version?1沒有聲明版本默認是"version?1"。Version?1將來會被棄用。 |
定義一個docker compose 管理器
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | [root@chy?~]#?docker?ps?//查看容器的名稱,后面會用到 CONTAINER?ID????????IMAGE???????????????COMMAND??????????????????CREATED??????????????STATUS??????????????PORTS??????????????????NAMES f98ab40c32a6????????centos??????????????"bash"???????????????????10?seconds?ago???????Up?4?seconds???????????????????????????????heuristic_torvalds c06361830af1????????centos7_1???????????"/bin/sh?-c?'/usr/..."???About?a?minute?ago???Up?About?a?minute???0.0.0.0:8080->80/tcp???root_app1_1 726da06d12c8????????centos7_1???????????"tail?-f?/etc/passwd"????21?minutes?ago???????Up?20?minutes???????80/tcp?????????????????root_app2_1 1101ab2618a4????????centos7_1???????????"/bin/sh?-c?'/usr/..."???18?hours?ago?????????Up?18?hours?????????0.0.0.0:81->80/tcp?????hopeful_pasteur [root@chy?~]#?vim?docker-compose.yml version:?"2" services: ??app1: ????image:?centos_nginx ????ports: ??????-?"8080:80" ????networks: ??????-?"net1" ????volumes: ??????-?/data/:/data ??app2: ????image:?centos_with_nettool ????networks: ??????-?"net2" ????volumes: ??????-?/data/:/data1 ????entrypoint:?tail?-f?/etc/passwd networks: ??net1: ????driver:?bridge ??net2: ????driver:?bridge 參數詳解: version:?"2"?//版本為2版本 services:?//相關容器或者鏡像操作 ??app1:?//app1對應的是容器1的信息,這里需要注意是要運行的容器的名稱 ????image:?centos7_1?///images的名字 ????ports:?//映射端口 ??????-?"8080:80"?//映射宿主機8080對應容器的80端口 ????networks:?//網絡(默認是bridge模式) ??????-?"net1"?//下面定義的net1(要是需要pipwork怎么辦?官方不支持,就只能在寫shell然后在?driver后面?定義none) ????volumes:?//-v的參數指定 ??????-?/data/:/data??//目錄映射 ??app2: ????image:?centos ????networks: ??????-?"net2" ????volumes: ??????-?/data/:/data1 ????entrypoint:?tail?-f?/etc/passwd?///還是老問題BUG?為了不讓執行后關閉,我們使用這條命令 networks:?//這里就是如上net1定義的網絡模式 ??net1: ????driver:?bridge ??net2: ????driver:?bridge [root@chy?~]#?docker-compose?up?-d? Recreating?root_app2_1?...? Recreating?root_app2_1 Recreating?root_app2_1?...?done [root@chy?~]#?docker?ps CONTAINER?ID????????IMAGE???????????????COMMAND??????????????????CREATED?????????????STATUS??????????????PORTS??????????????????NAMES 9646c0a40ae1????????centos??????????????"tail?-f?/etc/passwd"????7?minutes?ago???????Up?7?minutes???????????????????????????????root_app2_1 f98ab40c32a6????????centos??????????????"bash"???????????????????8?minutes?ago???????Up?7?minutes???????????????????????????????heuristic_torvalds c06361830af1????????centos7_1???????????"/bin/sh?-c?'/usr/..."???9?minutes?ago???????Up?9?minutes????????0.0.0.0:8080->80/tcp???root_app1_1 1101ab2618a4????????centos7_1???????????"/bin/sh?-c?'/usr/..."???18?hours?ago????????Up?18?hours?????????0.0.0.0:81->80/tcp?????hopeful_pasteur [root@chy?~]#?docker-compose?--help?//有不會的指令及時查看命令幫助 |
希望看過的童鞋多多指教,謝謝!
本文轉自我不是瘦子51CTO博客,原文鏈接:http://blog.51cto.com/chy940405/1982876,如需轉載請自行聯系原作者總結
以上是生活随笔為你收集整理的docker compose部署服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse + JBoss 5 +
- 下一篇: NA-NP-IE系列实验18:ip de