Docker容器编排
Docker容器編排
- 簡介
- 為什么需要 Compose?
- 安裝docker-compose
- 常用命令
- 使用步驟
- 小案例
- 總結
簡介
Compose(容器編排) 是 Docker 公司推出的一個工具軟件,可以管理多個 Docker 容器組成一個應用。你需要定義一個 YAML 格式的配置文件docker-compose.yml,寫好多個容器之間的調用關系。然后,只要一個命令,就能同時啟動/關閉這些容器。主要實現對Docker容器集群的快速編排。
為什么需要 Compose?
docker建議我們每一個容器中只運行一個服務,因為docker容器本身占用資源極少,所以最好是將每個服務單獨的分割開來但是這樣我們又面臨了一個問題?
如果我需要同時部署好多個服務,難道要每個服務單獨寫Dockerfile然后在構建鏡像,構建容器,這樣累都累死了,所以docker官方給我們提供了docker-compose多服務部署的工具
例如要實現一個Web微服務項目,除了Web服務容器本身,往往還需要再加上后端的數據庫mysql服務容器,redis服務器,注冊中心eureka,甚至還包括負載均衡容器等等。。。。。。
Compose允許用戶通過一個**單獨的docker-compose.yml模板文件(YAML 格式)**來定義一組相關聯的應用容器為一個項目(project)。
可以很容易地用一個配置文件定義一個多容器的應用,然后使用一條指令安裝這個應用的所有依賴,完成構建。Docker-Compose 解決了容器與容器之間如何管理編排的問題。
安裝docker-compose
官網下載地址:https://docs.docker.com/compose/install/
安裝步驟:
下載docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose修改權限
chmod +x /usr/local/bin/docker-compose查看docker-compose的版本
docker-compose --version卸載:
rm /usr/local/bin/docker-compose常用命令
docker-compose -h # 查看幫助 docker-compose up # 啟動所有docker-compose服務 docker-compose up -d # 啟動所有docker-compose服務并后臺運行 docker-compose down # 停止并刪除容器、網絡、卷、鏡像。 docker-compose exec yml里面的服務id # 進入容器實例內部 docker-compose exec docker-compose.yml文件中寫的服務id /bin/bash docker-compose ps # 展示當前docker-compose編排過的運行的所有容器 docker-compose top # 展示當前docker-compose編排過的容器進程 docker-compose logs <yml里面的服務id> # 查看容器輸出日志 docker-compose config # 檢查配置 docker-compose config -q # 檢查配置,有問題才有輸出 docker-compose restart # 重啟服務 docker-compose start # 啟動服務 docker-compose stop # 停止服務使用步驟
- 編寫Dockerfile定義各個微服務應用并構建出對應的鏡像文件
- 使用 docker-compose.yml 定義一個完整業務單元,安排好整體應用中的各個容器服務。
- 最后,執行 docker-compose up 命令 來啟動并運行整個應用程序,完成一鍵部署上線
小案例
使用容器編排完成部署個人的服務和mysql及redis:
這里需要先將個人服務打包成鏡像,可以通過 dockerfile 或者是 docker commit 指令完成,這里不再細說…
編寫docker-compose.yml文件
version: "3" #指定版本號#配置各個容器服務 services:#配置個人服務microService:#指定鏡像image: zzyy_docker:1.6#指定容器名稱container_name: ms01#指定端口映射ports:- "6001:6001"#指定容器卷volumes:- /app/microService:/data#指定網絡模式networks: - hypig_net depends_on: #表示只有當Docker中運行著指定的容器時,該服務容器才運行- redis- mysql#配置redis容器redis:image: redis:6.0.8ports:- "6379:6379"volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:/datanetworks: - atguigu_net#指定容器運行的指令command: redis-server /etc/redis/redis.conf#配置mysql容器mysql:image: mysql:5.7#配置相關的環境environment:MYSQL_ROOT_PASSWORD: 'lzb'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'docker_test'MYSQL_USER: 'root'MYSQL_PASSWORD: 'lzb'ports:- "3306:3306"volumes:- /app/mysql/db:/var/lib/mysql- /app/mysql/conf/my.cnf:/etc/my.cnf- /app/mysql/init:/docker-entrypoint-initdb.dnetworks:- hypig_netcommand: --default-authentication-plugin=mysql_native_password #解決外部無法訪問#創建網絡模式 networks: hypig_net:在docker-compose.yml文件所在的目錄下通過指令構建服務
docker-compose up -d #-d表示以守護進程運行查看docker容器實例
關停服務
docker-compose stop總結
- Compose的核心:編寫docker-compose.yml文件
- Compose的兩要素:
- 服務(service):一個個應用容器實例,比如訂單微服務、庫存微服務、mysql容器、nginx容器或者redis容器
- 工程(project):由一組關聯的應用容器組成的一個完整業務單元,在 docker-compose.yml 文件中定義。
總結
以上是生活随笔為你收集整理的Docker容器编排的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言狐狸与兔子编程,狐狸找兔子(VB程
- 下一篇: 天地图矢量数据下载_老树谷歌地图数据采集