亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker-compose常見的參數(shù)命令詳解

 更新時(shí)間:2022年07月26日 10:30:39   作者:高過藍(lán)天的云  
Compose?是用于定義和運(yùn)行多容器?Docker?應(yīng)用程序的工具,下面這篇文章主要給大家介紹了關(guān)于docker-compose常見參數(shù)命令的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. Docker Compose 產(chǎn)生背景

Compose 項(xiàng)目是 Docker 官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對 Docker 容器集群的快速編排。使用Dockerfile我們很容易定義一個(gè)單獨(dú)的應(yīng)用容器。然而在日常開發(fā)工作中,經(jīng)常會碰到需要多個(gè)容器相互配合來完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè) Web 項(xiàng)目,除了 Web 服務(wù)容器本身,往往還需要再加上后端的多種數(shù)據(jù)庫服務(wù)容器;再比如在分布式應(yīng)用一般包含若干個(gè)服務(wù),每個(gè)服務(wù)一般都會部署多個(gè)實(shí)例。如果每個(gè)服務(wù)都要手動啟停,那么效率之低、維護(hù)量之大可想而知。這時(shí)候就需要一個(gè)工具能夠管理一組相關(guān)聯(lián)的的應(yīng)用容器,這就是Docker Compose。

中文文檔:https://yeasy.gitbook.io/docker_practice/compose

2. Docker Compose模板文件

模板文件是使用 Compose 的核心,涉及到的指令關(guān)鍵字也比較多。下面主要列出幾個(gè)常見&重要的模板指令,其他指令大家可以自行百度。

默認(rèn)的模板文件名稱為 docker-compose.yml,格式為 YAML 格式。

1.environment

設(shè)置環(huán)境變量,主要是用來配置容器中程序所需要配置的一些參數(shù)。你可以使用數(shù)組或字典兩種格式。

services:
  mysql:
    image: mysql:latest
    ports:
      - 3307:3306
	environment:	# 使用字典格式,類似于 docker run -e MYSQL_ROOT_PASSWORD=root
	  MYSQL_ROOT_PASSWORD: root

也可以使用數(shù)組格式:

services:
  mysql:
    image: mysql:latest
    ports:
      - 3307:3306
    environment:	# 使用數(shù)組格式
      - MYSQL_ROOT_PASSWORD=root

2.volumes

數(shù)據(jù)卷所掛載路徑設(shè)置,掛載數(shù)據(jù)卷的默認(rèn)權(quán)限是讀寫(rw)。

你可以在主機(jī)上掛載絕對路徑,或者掛載相對路徑,相對路徑是相對于當(dāng)前正在使用的compose配置文件的目錄進(jìn)行擴(kuò)展。 相對路徑應(yīng)始終以 . 或者 … 開始。

services:
  mysql:
    image: mysql:latest
    ports:
      - 3307:3306
	environment:	# 使用字典格式,類似于 docker run -e MYSQL_ROOT_PASSWORD=root
	  MYSQL_ROOT_PASSWORD: root
    volumes:	
   	  # 掛載絕對路徑映射,沒有這個(gè)路徑的話會自動創(chuàng)建
      - /root/docker/composetest/tomcat/app_data:/var/lib/mysql

      # 或者使用相對路徑映射,也會自動創(chuàng)建
      - ./app_data:/var/lib/mysql

你還可以使用別名的方式掛載容器數(shù)據(jù)卷(可以跨多個(gè)服務(wù)并重用掛載卷,當(dāng)然使掛載絕對路徑或相對路徑也可以重用掛載卷),但要注意一點(diǎn),使用別名的方式掛載需要在頂級volumes關(guān)鍵字中聲明掛在卷,否則啟動會報(bào)錯(cuò)。

services:
  mysql:
    image: mysql:latest
    ports:
      - 3307:3306
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - my_app_data:/var/lib/mysql
  web1:
    volumes:	# 重用my_app_data
      - my_app_data:/var/lib/mysql
  web2:
    volumes:	# 重用my_app_data
      - my_app_data:/var/lib/mysql

volumes:
  my_app_data:

3.build

指定 Dockerfile 所在文件夾的路徑(可以是絕對路徑,或者相對 docker-compose.yml 文件的路徑)。 Compose 將會利用它自動構(gòu)建這個(gè)鏡像,然后使用這個(gè)鏡像。

services:

  webapp:
    build: ./		# 從當(dāng)前目錄下尋找Dockerfile文件

你也可以使用 context 指令指定 Dockerfile 所在文件夾的路徑,使用 dockerfile 指令指定 Dockerfile 文件名,可以使用 args 指令指定構(gòu)建鏡像時(shí)往Dockerfile中傳入的變量。

services:

  webapp:
    build:
      context: ./dir
      dockerfile: Dockerfile_flask
      args:
        buildno: 1

4.depends_on

解決容器的依賴、啟動先后的問題。以下例子中會先啟動 redis db 再啟動 web。

注意:web 服務(wù)不會等待 redis、db 完全啟動之后才啟動。

services:
  webapp:
    build: .
    depends_on:
      - db
      - redis

  redis:
    image: redis:latest

  db:
    image: mysql:latest

5.env_file

從文件中獲取環(huán)境變量,可以為單獨(dú)的文件路徑或列表。

services:
  mysql:
    image: mysql:latest
    ports:
      - 3307:3306
	env_file: .env		# 僅使用單個(gè)env文件
	
	env_file:		# 通過數(shù)組來使用多個(gè)env文件
	  - ./common.env
	  - ./apps/web.env
	  - /opt/secrets.env

環(huán)境變量文件中每一行必須符合格式,支持 # 開頭的注釋行。

# common.env: Set development environment
MYSQL_ROOT_PASSWORD=root

6.networks

配置容器連接的網(wǎng)絡(luò)。

services:
  webapp:
    networks:
      - flask-net

networks:	# 在頂級networks關(guān)鍵字中需要聲明,才會在啟動時(shí)自動創(chuàng)建該網(wǎng)絡(luò),否則報(bào)錯(cuò)。
  flask-net:

7.ports

暴露端口信息。使用宿主端口:容器端口 (HOST:CONTAINER) 格式。

ports:
 2. "80:80" # 綁定容器的80端口到主機(jī)的80端口
 3. "9000:8080" # 綁定容器的8080端口到主機(jī)的9000端口
 4. "443" # 綁定容器的443端口到主機(jī)的任意端口,容器啟動時(shí)隨機(jī)分配綁定的主機(jī)端口號

8.expose

暴露端口,但不映射到宿主機(jī),只被連接的服務(wù)訪問。

和ports的區(qū)別是,expose暴露容器給link到當(dāng)前容器的容器,不會將端口暴露給主機(jī)。

9.restart

指定docker容器(服務(wù))總是運(yùn)行。

services:
  webapp:
    networks:
      - flask-net
	restart: always

3. docker-compose指令

中文文檔: https://yeasy.gitbook.io/docker_practice/compose/commands

1.up -d(后臺啟動)

該命令十分強(qiáng)大,它將嘗試自動完成包括構(gòu)建鏡像,(重新)創(chuàng)建服務(wù),啟動服務(wù),并關(guān)聯(lián)服務(wù)相關(guān)容器的一系列操作。

docker-compose up -d · # 不寫服務(wù)名,默認(rèn)啟動docker-compose.yml所有服務(wù)
docker-compose up -d 服務(wù)名 # 啟動docker-compose.yml的對應(yīng)服務(wù)

     默認(rèn)情況,如果服務(wù)容器已經(jīng)存在,docker-compose up 將會嘗試停止容器,然后重新創(chuàng)建(保持使用 volumes-from 掛載的卷),以保證新啟動的服務(wù)匹配 docker-compose.yml 文件的最新內(nèi)容。但是不會更新已經(jīng)打好的鏡像,如果鏡像錯(cuò)誤,不能通過 docker-compose up 更新鏡像,只能先刪除鏡像。如果用戶不希望容器被停止并重新創(chuàng)建,可以使用 docker-compose up --no-recreate。這樣將只會啟動處于停止?fàn)顟B(tài)的容器,而忽略已經(jīng)運(yùn)行的服務(wù)。如果用戶只想重新部署某個(gè)服務(wù),可以使用 docker-compose up --no-deps -d <SERVICE_NAME> 來重新創(chuàng)建服務(wù)并后臺停止舊服務(wù),啟動新服務(wù),并不會影響到其所依賴的服務(wù)。

2.down

此命令將會停止 up 命令所啟動的容器,并移除網(wǎng)絡(luò),但是不會移除已經(jīng)打好的鏡像。

docker-compose down · # 不寫服務(wù)名,默認(rèn)停止docker-compose.yml所有服務(wù)
docker-compose down 服務(wù)名 # 停止docker-compose.yml的對應(yīng)服務(wù)

3.exec

進(jìn)入指定的容器。和docker的exec命令一樣。

docker-compose exec 服務(wù)名 bash

4.ps

列出項(xiàng)目中目前的所有容器。

docker-compose ps # 列出所有運(yùn)行的服務(wù)
docker-compose ps -q # 只列出容器的ID信息
選項(xiàng):
-q 只打印容器的 ID 信息。

5.top

查看所有服務(wù)容器內(nèi)運(yùn)行的進(jìn)程,或者查看指定服務(wù)名的容器內(nèi)運(yùn)行的進(jìn)程。

docker-compose top
docker-compose top 服務(wù)名

6.logs -f(實(shí)時(shí))

查看所有服務(wù)容器,或指定服務(wù)容器的日志輸出。默認(rèn)情況下,docker-compose 將對不同的服務(wù)輸出使用不同的顏色來區(qū)分??梢酝ㄟ^ --no-color 來關(guān)閉顏色。該命令在調(diào)試問題的時(shí)候十分有用。

docker-compose logs # 輸出所有服務(wù)容器的日志
docker-compose logs 服務(wù)名 # 輸出對應(yīng)服務(wù)的日志
docker-compose logs -f 服務(wù)名 # 實(shí)時(shí)輸出對應(yīng)服務(wù)的日志

其他命令參考中文文檔手冊。

總結(jié)

到此這篇關(guān)于docker-compose常見的參數(shù)命令詳解的文章就介紹到這了,更多相關(guān)docker-compose參數(shù)命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker數(shù)據(jù)存儲總結(jié)

    Docker數(shù)據(jù)存儲總結(jié)

    今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例

    Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例

    這篇文章主要為大家介紹了Docker compose安裝部署創(chuàng)建自定義網(wǎng)絡(luò)使用舉例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • docker私有倉庫的搭建和使用詳解

    docker私有倉庫的搭建和使用詳解

    這篇文章主要介紹了docker私有倉庫的搭建和使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 深入了解docker(docker鏡像、容器、倉庫的基本概念)

    深入了解docker(docker鏡像、容器、倉庫的基本概念)

    本文重點(diǎn)給大家介紹docker鏡像、容器、倉庫的基本概念,感興趣的朋友跟著小編一起學(xué)習(xí)吧
    2016-10-10
  • Docker部署FastDFS的實(shí)現(xiàn)方法

    Docker部署FastDFS的實(shí)現(xiàn)方法

    這篇文章主要介紹了Docker部署FastDFS的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 教你使用Portainer管理多臺Docker容器環(huán)境的方法

    教你使用Portainer管理多臺Docker容器環(huán)境的方法

    這篇文章主要介紹了Portainer管理多臺Docker容器環(huán)境,本文給大家介紹的非常詳細(xì),包括環(huán)境準(zhǔn)備及管理docker的詳細(xì)過程,需要的朋友可以參考下
    2021-11-11
  • 使用docker搭建gitlab詳解

    使用docker搭建gitlab詳解

    本篇文章主要介紹了使用docker搭建gitlab詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • docker?安裝Oracle-12C的方法詳解

    docker?安裝Oracle-12C的方法詳解

    這篇文章主要介紹了docker?安裝Oracle-12C的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • 搭建一個(gè)私有的Docker registry教程

    搭建一個(gè)私有的Docker registry教程

    這篇文章提供了一個(gè)非常務(wù)實(shí)的方法來處理搭建私有Docker registry時(shí)出現(xiàn)的各種錯(cuò)綜復(fù)雜的情況。我們將會使用一個(gè)運(yùn)行于DigitalOcean(之后簡稱為DO)的非常小巧的512MB VPS 實(shí)例
    2016-09-09
  • docker?save與docker?export的區(qū)別

    docker?save與docker?export的區(qū)別

    docker?save和docker?export都能導(dǎo)出鏡像包,本文主要介紹了docker?save與docker?export的區(qū)別,試圖搞清楚docker?save和docker?export的功能是什么?適用于什么應(yīng)用場景?感興趣的可以了解一下
    2022-03-03

最新評論