docker-compose 常用命令和指令

目錄

1. 概要

2. 常用的docker-compose命令

2.1、image

2.2、build

2.3、command

2.6、ports

1.7、expose

1.8、volumes

1.9、volumes_from

1.10、environment

1.11、networks


1. 概要

默認的模板文件是 docker-compose.yml,其中定義的每個服務可以通過 image 指令指定鏡像或 build 指令(需要 Dockerfile)來自動構建。

注意如果使用 build 指令,在 Dockerfile 中設置的選項(例如:CMD, EXPOSE, VOLUME, ENV 等) 將會自動被獲取,無需在 docker-compose.yml 中再次設置。如果設置了會被YML覆蓋

2. 常用的docker-compose命令
命令描述
docker-compose up -d構建建啟動容器
docker-compose exec bash登錄到容器中
docker-compose down刪除所有容器,鏡像
docker-compose ps顯示所有容器
docker-compose restart重新啟動容器
docker-compose run --no-deps --rm php-fpm php -v在php-fpm中不啟動關聯容器,并容器執行php -v 執行完成后刪除容器
docker-compose build構建鏡像
docker-compose build --no-cache不帶緩存的構建
docker-compose logs查看的日志
docker-compose logs -f驗證(docker-compose.yml)文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息
docker-compose pause暫停容器
docker-compose unpause恢復容器
docker-compose rm刪除容器(刪除前必須關閉容器)
docker-compose stop停止容器
docker-compose start啟動容器
2.1、image

說明

指定為鏡像名稱或鏡像 ID。如果鏡像在本地不存在,Compose 將會嘗試拉去這個鏡像。

栗子

image: ubuntu
image: mysql:5.7.22
2.2、build

說明

指定 Dockerfile 所在文件夾的路徑。 Compose 將會利用它自動構建這個鏡像,然后使用這個鏡像。

栗子

build: ./
build: ./web/
2.3、command

說明

覆蓋容器啟動后默認執行的命令。

栗子

command:--default-authentication-plugin=mysql_native_password--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1

說明

鏈接到其它服務中的容器。使用服務名稱(同時作為別名)或服務名稱:服務別名 (SERVICE:ALIAS) 格式都可以。

栗子

links:- mysql- db:database- redis

使用的別名將會自動在服務容器中的 /etc/hosts 里創建。例如:

172.17.2.111  db
172.17.2.112  database
172.17.2.113  redis

說明

鏈接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。參數格式跟 links 類似。

栗子

external_links:- redis- web_db_mysql:mysql- web_db_oracle:oracle- web_db_oracle:postgre
2.6、ports

說明

暴露端口信息。使用宿主:容器 (HOST:CONTAINER)格式或者僅僅指定容器的端口(宿主將會隨機選擇端口)都可以。

栗子

ports:- "6379"- "8000:8000"- "46200:22"- "127.0.0.1:8080:8080"

注:當使用 HOST:CONTAINER 格式來映射端口時,如果你使用的容器端口小于 60 你可能會得到錯誤得結果,因為 YAML 將會解析 xx:yy 這種數字格式為 60 進制。所以建議采用字符串格式。

1.7、expose

說明

暴露端口,但不映射到宿主機,只被連接的服務訪問。可以指定內部端口為參數

栗子

expose:- "3307"- "6380"
1.8、volumes

說明

卷掛載路徑設置。可以設置宿主機路徑 (HOST:CONTAINER) 或加上訪問模式 (HOST:CONTAINER:ro 或者rw)。

volumes:- ./mysql/data:/var/lib/mysql - ./configs:/etc/configs/:ro
1.9、volumes_from

說明

從另一個服務或容器掛載它的所有卷。

栗子

volumes_from:- service_name- container_name
1.10、environment

說明

設置環境變量。只給定名稱的變量會自動獲取它在 Compose 主機上的值,可以用來防止泄露不必要的數據。

栗子

environment:MYSQL_ROOT_PASSWORD: rootTZ: Asia/Shanghai
1.11、networks

說明

用于設置指定網絡,子標簽aliases用于設置服務別名,相同的別名可以在不同的網絡中擁有不同的識別別名。

可以在service中使用,也可以在頂級標簽中使用

栗子

services:some-service:networks:some-network:aliases:- alias1- alias3other-network:aliases:- alias2
# 定義網絡 ? ? ? ? 
networks:default:external:name: app

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211049.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211049.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211049.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里云(云服務器)上搭建項目部署環境

目錄 安裝docker docker安裝MySQL5.7.37 安裝MySQL 方式一:docker中MySQL時區調整 方式二:docker中MySQL時區調整 docker安裝MySQL8.0.27 docker安裝redis5.0.14 云服務器上安裝jdk1.8 安裝docker 1、先卸載docker,因為有一些服務器…

西南科技大學C++程序設計實驗十(函數模板與類模板)

一、實驗目的 1. 掌握函數模板與類模板; 2. 掌握數組類、鏈表類等線性群體數據類型定義與使用; 二、實驗任務 1. 分析完善以下程序,理解模板類的使用: (1)補充類模板聲明語句。 (2)創建不同類型的類對象,使用時明確其數據類型? _template<typename T>__…

c-語言->數據在內存的存儲

系列文章目錄 文章目錄 系列文章目錄前言 前言 目的&#xff1a;學習整數在內存的儲存&#xff0c;什么是大小端&#xff0c;浮點數的儲存。 1. 整數在內存中的存儲 在講解操作符的時候&#xff0c;我們就講過了下?的內容&#xff1a; 整數的2進制表??法有三種&#xff0…

設計模式之觀察者模式(主題對象發生變化,通知各個觀察者)

當涉及到電商場景時&#xff0c;觀察者模式可以用于處理多種情況&#xff0c;比如訂單狀態更新、庫存變化、用戶積分變化等。下面是一個簡化的訂單狀態更新的觀察者模式案例。 1.首先&#xff0c;定義一個主題接口 OrderSubject /*** Description:主題&#xff0c;用于管理觀察…

基于Java會員管理系統

基于Java會員管理系統 功能需求 1、會員信息管理&#xff1a;該系統需要提供會員信息管理功能&#xff0c;包括會員的姓名、性別、年齡、聯系方式等基本信息。同時&#xff0c;還需要提供會員的消費記錄、積分、優惠券等信息的管理。 2、會員注冊和登錄&#xff1a;系統需要…

動手學習深度學習-跟李沐學AI-自學筆記(3)

一、深度學習硬件-CPU和GPU 芯片&#xff1a;Intel or AMD 內存&#xff1a;DDR4 顯卡&#xff1a;nVidia 芯片可以和GPU與內存通信 GPU不能和內存通信 1. CPU 能算出每一秒能運算的浮點運算數&#xff08;大概0.15左右&#xff09; 1.1 提升CPU利用率 1.1.1 提升緩存…

自動駕駛學習筆記(十六)——目標跟蹤

#Apollo開發者# 學習課程的傳送門如下&#xff0c;當您也準備學習自動駕駛時&#xff0c;可以和我一同前往&#xff1a; 《自動駕駛新人之旅》免費課程—> 傳送門 《Apollo 社區開發者圓桌會》免費報名—>傳送門 文章目錄 前言 匹配關聯 軌跡記錄 狀態預測 總結 前…

【文件上傳系列】No.2 秒傳(原生前端 + Node 后端)

上一篇文章 【文件上傳系列】No.1 大文件分片、進度圖展示&#xff08;原生前端 Node 后端 & Koa&#xff09; 秒傳效果展示 秒傳思路 整理的思路是&#xff1a;根據文件的二進制內容生成 Hash 值&#xff0c;然后去服務器里找&#xff0c;如果找到了&#xff0c;說明已經…

【智能家居】七、人臉識別 翔云平臺編程使用(編譯openSSL支持libcurl的https訪問、安裝SSL依賴庫openSSL)

一、翔云 人工智能開放平臺 API文檔開發示例下載 二、編譯openSSL支持libcurl的https訪問 安裝SSL依賴庫openSSL(使用工具wget)libcurl庫重新配置&#xff0c;編譯&#xff0c;安裝運行&#xff08;運行需添加動態庫為環境變量&#xff09; 三、編程實現人臉識別 四、Base6…

12.4每日一題(備戰藍橋杯順序結構程序設計)

12.4每日一題&#xff08;備戰藍橋杯順序結構程序設計&#xff09; 題目1000: 【入門】AB Problem題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 1000: 【入門】AB Problem題目 2124: 計算(ab)c的值題目描述輸入輸出樣例輸入樣例輸出來源/分類 題解 2124: 計算(ab)c的值題目…

UML案例分析

首先需要花大約20分鐘來思考解決這個問題&#xff0c;如果對問題不是很熟悉&#xff0c;也可以在完成題目之后&#xff0c;找相關的資料翻閱&#xff08;例如看UML類圖的基本情況&#xff0c;UML狀態圖的基本情況&#xff0c;然后結合這些信息 做一個自我評價&#xff0c;看這個…

matlab 最小二乘擬合空間直線(方法三)

目錄 一、算法原理1、算法過程2、參考文獻二、代碼實現三、結果展示四、相關鏈接博客長期更新,GPT與爬蟲自重,你也未必能爬到最新版本。 一、算法原理 1、算法過程 空間直線的點向式方程為:

poe與chatgpt那個功能更強大

在當前的人工智能領域&#xff0c;Poe Al Chat以其卓越的聊天能力和實用的功能&#xff0c;受到了大家的廣泛關注和喜愛。本文好為您個紹Poe Al Chat的功能&#xff0c;以及我們國內用戶如何進行充值訂閱。Poe Al Chat是一個基于OpenAl的GPT模型開發的人工智能聊天工具。它能夠…

基于Springboot的校園失物招領系統(有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的校園失物招領系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構…

Docker鏡像和容器的簡單操作

1.鏡像管理 搜索鏡像&#xff1a; 這種方法只能用于官方鏡像庫 搜索基于 centos 操作系統的鏡像 # docker search centos 按星級搜索鏡像&#xff1a; 查找 star 數至少為 100 的鏡像&#xff0c;默認不加 s 選項找出所有相關 ubuntu 鏡像&#xf…

為 setTimeout 或 setInterval 提供一個字符串作為第一個參數(js的問題)

首先&#xff0c;需要知道的是為 setTimeout 或 setInterval 提供一個字符串作為第一個參數&#xff0c;這本身并不是一個錯誤。它是完全合法的JavaScript代碼。這里的問題更多的是性能和效率的問題。很少有人解釋的是&#xff0c;如果你把字符串作為setTimeout或setInterval的…

46.0/基本的 HTML 標簽(詳細版)

目錄 46.1 標題 46.2 段落 Paragraph, 46.3 換行 46.4 HTML 注釋 46.5 空格 46.6 水平線 46.7 控制網頁中文字的標記 46.8 居中標記 46.9 預格式化文本 46.10 網頁背景 46.1 標題 標記解釋 標題使用 <h1> 至 <h6> 標簽進行定義。 <h1> 定…

uniapp如何制作一個收縮通訊錄(布局篇)

html&#xff1a; <view class"search"><view class"search_padding"><u-search change"search" placeholder"請輸入成員名稱" v-model"keyword"></u-search></view></view> <view…

C語言有哪些預處理操作?

C語言的預處理是在編譯之前對源代碼進行處理的階段&#xff0c;它主要由預處理器完成。預處理器是一個獨立的程序&#xff0c;它負責對源代碼進行一些文本替換和處理&#xff0c;生成經過預處理的代碼。以下是C語言預處理的一些重要特性&#xff1a; 1&#xff0c;頭文件包含 #…

Ansible中執行流控制

1.ansible中的迭代循環 創建目錄和文件 vim createfile.yaml - name: create file playbook hosts: all tasks: - name: create file file: path: "/mnt/{{item[name]}}" state: …