目錄
一、compose檔案結構
1、yml檔案
2、Compose配置常用的欄位
3、Compose在外部的常用指令
二、安装docker compose工具
1、下载
2、添加权限
3、运行docker-compose
三、编译镜像
首頁 運維 Docker docker基礎之compose檔案結構以及安裝工具(實例詳解)

docker基礎之compose檔案結構以及安裝工具(實例詳解)

Feb 07, 2022 pm 05:39 PM
docker

本篇文章為大家帶來了docker中compose的相關知識,其中包含了compose檔案結構以及安裝docker compose工具的相關知識,希望對大家有幫助。

docker基礎之compose檔案結構以及安裝工具(實例詳解)

什麼是docker compose?

docker compose是一個容器編排功能,將運行在不同容器中的不同伺服器進行編排,聯合在一起。

可以用於對多數容器進行統一管理:包括但不限於:網路、連接埠、掛載等可以用於實現容器的叢集化,相關於容器、鏡像的一系列操作,compose都可以進行操作,就是一個管理容器的功能

一、compose檔案結構

1、yml檔案

compose中檔案結構通常是指yml檔案的結構,那什麼是yml檔?

yml檔案是一種鍵值對格式的檔案。

yml檔案對於格式非常的敏感,需要注意以下幾個事項:

  1. 只識別空格進行的縮排,不識別tab鍵的縮排形式
  2. 通常開頭部分縮排兩個空格
  3. 字元後面縮排一格空格,包括但不限於:冒號、逗號、橫槓等這些字元。字符後面必須縮排一格
  4. 支援使用#來進行註釋
  5. 如果包含特殊字符,需要使用單引號引用起來
  6. 布林值必須使用引號括起來

例如:

  house:
    family:
      name: Doe
      parents: 
        - John
        - Jane
      children: 
        - Paul
        - Mark
        - Simone
    address: 
      number: 34
      street: Main Street
      city: Nowheretown
      zipcode: 1234
登入後複製

yml檔案格式例如上面,需要進行一級級的對應,不同級之間,有兩個空格的間隔。

註:如果在一個層級中,一個鍵有多個值,可以使用在下一個層級,同樣是空餘兩格,以短橫槓起始,有幾個值寫幾個端橫槓

2、Compose配置常用的欄位

欄位 描述
build dockerfile centext 指定Dockerfile檔名建構鏡像上下文的路徑
images 指定映像
#command 執行指令,覆寫預設指令
#container name 指定容器名稱,由於容器名稱是唯一的。如果指定自訂名稱,則是無法建立scale
#deploy #指定部署和執行服務相關配置,只能再Swarm模式使用
environment 新增環境變數
networks 加入網路
ports 暴露容器端口,與-p相同,但是端口號必須大於60
#volumts 掛載宿主機路徑或命令卷
restart 重啟策略,預設no,always, on-failure,unless-stoped
hostname 容器主機名稱

build:建構一個映像時候的一個定義方式

dockerfile:方式是使用dockerfile的方式建構

context:服務docerfile檔案的路徑

images:可以指定使用的映像名字,例如:images:鏡像名,注意:後面有個空格

command:執行一個語句

container name:用來指定容器的名稱,因為容器名字是唯一的。如果指定自訂名稱,則無法scale(設定副本集)

#副本集:將一個映像製作成多個容器,這多個容器之間,運行環境等方面都是一模一樣。當容器架構中的一個容器掛掉之後,可以直接啟動一個相同的容器,用以保持副本集的數量,這是副本集的概念,同樣也是K8s的核心。可以提高微服務的速度,提高容災,高並發效能

deploy:是一個控制器,在k8s中是控制管理副本集的一個外掛程式

restart:一種重啟策略,預設是關閉之後不啟動,如果always則是不管是手動關閉還是非手動關閉,都會自動把關閉狀態的容器啟動,unless-stoped只拉取關閉狀態的容器,on-failure,只會啟動容器回傳碼非零的容器

3、Compose在外部的常用指令

欄位 描述
build 重新建構一個鏡像資訊
ps 列出容器目前docker compose所控制的容器
up #建立以及啟動容器
exec 在容器內執行指令
scale 指定一個伺服器的啟動數量,相當於副本集的數量
#top 顯示容器進程,所有docker compose控制的進程啟動的容器
logs 查看容器的輸出資訊
down 刪除容器、網路、資料捲和映像
stop/start/restart 停止/啟動/重啟容器服務

docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]

docker-compose选项

  1. –verbose:输出更多调试信息
  2. –version:打印版本并退出
  3. -f /–file FILE:使用特定的compose模板文件,默认为docker-compose.yml
  4. -p /–project-name NAME:指定项目名称,默认使用目录名称

二、安装docker compose工具

1、下载

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
登入後複製

首次连接下载的时候,可能会提示失误或者连接不上,可能是因为网络原因,可以多试几次

2、添加权限

文件在刚下载之后,默认是没有执行权限的,所以需要手动添加执行权限

chmod +x /usr/local/bin/docker-compos
登入後複製

3、运行docker-compose

docker-compose
登入後複製

可以看到,现在已经正常执行了

三、编译镜像

手动创建下面的文件(dockerfile文件之前有的话,直接拉取过来也是可以的)

tree
.
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.0.tar.gz
└── wwwroot
    └── index.html
登入後複製

其中yml文件内部

cat docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1321:80
      - 1707:443
    networks:
      - cluster
    volumes:
      - ./wwwroot: /usr/local/nginx/html
networks:
  cluster:
登入後複製

nginx的dockerfile文件

cat ./nginx/Dockerfile

FROM centos:7
ADD nginx-1.12.0.tar.gz /tmp
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null \
    && useradd -M -s /sbin/nologin nginx \
    && cd /tmp/nginx-1.12.0/ \
    && ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module &> /dev/null \
    && make &> /dev/null \
    && make install &> /dev/null
VOLUME ["/usr/local/nginx/html"]
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
登入後複製

index.html文件中就是自己配置的网页信息,就不多做介绍了

确定之后,编译

docker-compose -f docker-compose.yml up -d
登入後複製

查看运行结果

docker ps -a

CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                      PORTS                                                                        NAMES
da38007f09ab   dockercompose_nginx   "/usr/local/nginx/sb…"   About a minute ago   Up About a minute           0.0.0.0:666->80/tcp, :::666->80/tcp, 0.0.0.0:667->443/tcp, :::667->443/tcp   dockercompose_nginx_1
#可以看到,这个端口信息就是我们在yml文件中设置的端口信息,直接在这个生效了

docker images

REPOSITORY                TAG       IMAGE ID       CREATED         SIZE
dockercompose_nginx       latest    b1e4b9dfa72d   3 minutes ago   478MB
登入後複製

访问网址端口,查看该网站页面

curl 192.168.75.51:666
hello
#显示结果
cat ./wwwroot/index.html
hello
登入後複製

推荐学习:《docker视频教程

以上是docker基礎之compose檔案結構以及安裝工具(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
docker怎麼退出容器 docker怎麼退出容器 Apr 15, 2025 pm 12:15 PM

退出 Docker 容器的四種方法:容器終端中使用 Ctrl D 快捷鍵容器終端中輸入 exit 命令宿主機終端中使用 docker stop &lt;container_name&gt; 命令宿主機終端中使用 docker kill &lt;container_name&gt; 命令(強制退出)

docker內的文件怎麼拷貝到外面 docker內的文件怎麼拷貝到外面 Apr 15, 2025 pm 12:12 PM

Docker 中將文件拷貝到外部主機的方法:使用 docker cp 命令:執行 docker cp [選項] &lt;容器路徑&gt; &lt;主機路徑&gt;。使用數據卷:在主機上創建目錄,在創建容器時使用 -v 參數掛載該目錄到容器內,實現文件雙向同步。

docker怎麼啟動容器 docker怎麼啟動容器 Apr 15, 2025 pm 12:27 PM

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

docker怎麼重啟 docker怎麼重啟 Apr 15, 2025 pm 12:06 PM

重啟 Docker 容器的方法:獲取容器 ID(docker ps);停止容器(docker stop &lt;container_id&gt;);啟動容器(docker start &lt;container_id&gt;);驗證重啟成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(參考 Docker 文檔)。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

docker怎麼創建容器 docker怎麼創建容器 Apr 15, 2025 pm 12:18 PM

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

docker怎麼查看日誌 docker怎麼查看日誌 Apr 15, 2025 pm 12:24 PM

查看 Docker 日誌的方法包括:使用 docker logs 命令,例如:docker logs CONTAINER_NAME使用 docker exec 命令運行 /bin/sh 並查看日誌文件,例如:docker exec -it CONTAINER_NAME /bin/sh ; cat /var/log/CONTAINER_NAME.log使用 Docker Compose 的 docker-compose logs 命令,例如:docker-compose -f docker-com

See all articles