日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)

發布時間:2024/2/28 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Docker Compose搭建consul群集環境
    • 認識Docker Compose
    • IConsul
    • Docker Compose容器編排
    • Dasker Compose配置常用字段
    • Bosker Compose常用命令
    • Compose命令說明
  • Docker四種網絡模式
    • 案例概述
    • 指定Docker地址
  • 部署compose群集

Docker Compose搭建consul群集環境

認識Docker Compose

  • Docker Compose的前身是Fig,
    它是一個定義及運行多個Docker
    容器的工具
  • 使用Docker Compose不再需要
    使用Shell腳本來啟動容器
  • Docker Compose非常適合組合
    使用多個容器進行開發的場景

IConsul

  • IConsul是HashiCorp公司推出的開源工具,用于實現分布
    式系統的服務發現與配置
  • Consul的特性
    Hashitorp
    ●支持健康檢查,允許存儲鍵值對
    ●基于Golong語言,可移植性強
    ●支持ACL訪問控制
  • 與Docker等輕量級容器可無縫配合

Docker Compose容器編排

YAML是一種標記語言很直觀的數據序列化格式
文件格式及編寫注意事項

  • 不支持制表符tab鍵縮進,需要使用空格縮進
  • 通常開頭縮進2個空格
  • 字符后縮進1個空格,如冒號、逗號、橫桿
  • 用#號注釋
  • 如果包含特殊字符用單引號引起來
  • 布爾值必須用引號括起來

Dasker Compose配置常用字段

字段描述
build dockerfile context指定Dockerfile文件名構建鏡像上下文路徑
image指定鏡像
command執行命令,覆蓋默認命令
container name指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale
deploy指定部署和運行服務相關配置,只能在Swarm模式使用
environment添加環境變量
networks加入網絡
ports暴露容器端口,與-p相同,但端口不能低于60
volumes掛載宿主機路徑或命令卷
restart重啟策略,默認no,always,no-failure,unless-stoped
hostname容器主機名

Bosker Compose常用命令

字段描述
build重新構建服務
ps列出容器
up創建和啟動容器
exec在容器里面執行命令
scale指定一個服務容器啟動數量
top顯示容器進程
logs查看容器輸出
down刪除容器、網絡、數據卷和鏡像
stop/start/restart停止/啟動/重啟服務

Compose命令說明

基本的使用格式

docker-compose [options][COMMAND][ARGS...]

docker-compose選項

  • –verbose輸出更多調試信息
  • –version打印版本并退出
  • -f,–file FILE使用特定的compose模板文件,默認為docker-compose.yml
  • -p,–project-name NAME指定項目名稱,默認使用目錄
    名稱

Docker四種網絡模式

host:容器將不會虛擬出自己的網卡,配置自己的IP等,而是使用宿主機的IP和端口.

Container:創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享IP、端口范圍。

None:該模式關閉了容器的網絡功能。

Bridge:此模式會為每一個容器分配、設置IP等,并將容器連接到一個dockero虛擬網橋,通過dockero網橋以及lptables nat表配置與宿主機通信。


**

案例概述

創鑫公司提出一個新需求,使用Docker將Consul、
Consul Template、Registrator和Nginx組裝成一個
值得信任且可擴展的服務框架,可在這個框架中添加和
移除服務,不需要重寫任何配置,也不需要重啟任何服
務,一切都能正常運行

指定Docker地址

橋接

docker run -itd --name test --network bridge --ip 172.17.0.10 centos:7 /bin/bash [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 75c0f431ea72 centos:7 "/bin/bash" 10 seconds ago Created test

使用brige無法支持指定ip

使用brige無法支持指定ip

我們用一下方法

方法一

[root@localhost ~]# docker network create --subnet=172.18.0.0/24 mynetwork

ifconfig查看

br-f1c03a82b4dd: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500inet 172.18.0.1 netmask 255.255.255.0 broadcast 172.18.0.255

方法二

[root@localhost ~]# docker run -itd --name test --net mynetwork --ip 172.18.0.10 centos:7 /bin/bash 查看時up狀態 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 042913086b1e centos:7 "/bin/bash" 37 seconds ago Up 35 seconds

進入docker容器

[root@localhost ~]# docker exec -it 042913086b1e /bin/bash

下載一下ifcong

[root@042913086b1e /]# yum -y install net-tools

可以看到已經創建ip(和我們配置的地址一樣)

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 172.18.0.10 netmask 255.255.255.0 broadcast 172.18.0.255

部署compose群集

導入docker-compose 模板文件

[root@localhost ~]# chmod +x docker-compose [root@localhost ~]# cp -p docker-compose /usr/local/bin/ 創建編排nginx服務

創建編排nginx服務

[root@localhost ~]# mkdir compose_nginx [root@localhost ~]# cd compose_nginx/ [root@localhost compose_nginx]# mkdir nginx [root@localhost compose_nginx]# cd nginx/ [root@localhost nginx]# vim Dockerfile FROM centos:7 MAINTAINER this is nginx RUN yum -y update RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin nginx ADD nginx-1.12.0.tar.gz /usr/local/src WORKDIR /usr/local/src WORKDIR nginx-1.12.0 RUN ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module && make && make install ENV PATH /usr/local/nginx/sbin:$PATH EXPOSE 80 EXPOSE 443 RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf ADD run.sh /run.sh RUN chmod 755 /run.sh CMD ["/run.sh"]

創建啟動腳本

[root@localhost nginx]# vim run.sh #!/bin/bash /usr/local/nginx/sbin/nginx

配置yml

cd /root/compose_nginx/ [root@localhost compose_nginx]# vim docker-compose.yml version: '3' services: nginx: hostname: nginxbuild: context: ./nginxdockerfile: Dockerfileports: - 1216:80- 1217:443networks: - yunvolumes: - ./wwwroot:/usr/local/nginx/html networks: yun:

開啟服務

[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d

編寫網頁

[root@localhost compose_nginx]# cd wwwroot/ [root@localhost wwwroot]# vim index.html <h1>this is test web </h1>

樹形結構查看

[root@localhost wwwroot]# yum install -y tree[root@localhost compose_nginx]# tree ./ ./ ├── docker-compose.yml ├── nginx │ ├── Dockerfile │ ├── nginx-1.12.0.tar.gz │ └── run.sh └── wwwroot└── index.html

查看端口

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acd31d303623 compose_nginx_nginx "/run.sh" 2 minutes ago Up 2 minutes 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1

總結

以上是生活随笔為你收集整理的Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。