Docker 容器運行實戰:從啟動到停止一切你想知道的

要啟動一個新的容器,我們使用 docker run 命令,后跟鏡像名稱。基本語法如下:

docker run [選項] 鏡像 [COMMAND] [ARG...]

例如,要運行官方的 Nginx 鏡像,我們可以使用:

docker run -d -p 8080:80 nginx

這會啟動一個新的容器,并將主機的端口 8080 映射到容器的端口 80。

列出容器

要列出所有正在運行的容器,請使用 docker ps 命令。要查看所有容器(包括已停止的容器),請使用 -a 標志:

docker container ls -a

訪問容器

要訪問正在運行的容器的 shell,請使用 docker exec 命令:

docker exec -it CONTAINER_ID bash

CONTAINER_ID 替換為所需容器的 ID 或名稱。您可以在 docker ps 的輸出中找到它。

停止容器

要停止運行中的容器,請使用 docker stop 命令,后跟容器 ID 或名稱:

docker container stop CONTAINER_ID

刪除容器

停止容器后,我們可以使用 docker rm 命令,后跟容器 ID 或名稱,將其刪除:

docker container rm CONTAINER_ID

要在退出時自動刪除容器,請在運行容器時添加 --rm 標志:

docker run --rm IMAGE

Docker Compose

Docker Compose 是一個用于定義和運行多容器 Docker 應用程序的工具。它允許您使用一個簡單的名為?docker-compose.yml?的 YAML 文件創建、管理和運行應用程序。此文件描述了你的應用程序的服務、網絡和卷,只需使用一個命令就可以輕松運行和管理你的容器。

使用 Docker Compose 的一些好處包括:

  • 簡化容器管理: Docker Compose 允許您在一個地方定義和配置所有服務、網絡和卷,使其易于管理和維護。
  • 可重復構建: 共享你的?docker-compose.yml?文件,以確保他人運行相同的環境和服務。
  • 版本支持: Docker Compose 文件可以進行版本控制,以便更容易地與不同版本的 Docker Compose 工具進行兼容。

創建 Docker Compose 文件:

要創建一個?docker-compose.yml?文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定義的服務。下面是一個基本的?docker-compose.yml?文件示例:

version: "3.9"
services:  web:    
image: nginx:latest    
ports:      - "80:80"  
db:    image: 
mysql:latest    
environment:      
MYSQL_ROOT_PASSWORD: 
mysecretpassword

在這個示例中,我們指定了兩個服務:一個運行最新版本 nginx 鏡像的 Web 服務器(web),以及運行 MySQL 的數據庫服務器(db)。Web 服務器將其端口 80 暴露給主機,而數據庫服務器則設置了根密碼的環境變量。

運行 Docker Compose:

要運行你的 Docker Compose 應用程序,只需導航到包含你的?docker-compose.yml?文件的目錄,并運行以下命令:

docker-compose up

Docker Compose 將讀取文件并按指定的順序啟動定義的服務。

其他有用的命令:

要啟動一個新的容器,我們使用 docker run 命令,后跟鏡像名稱。基本語法如下:

docker run [選項] 鏡像 [COMMAND] [ARG...]

例如,要運行官方的 Nginx 鏡像,我們可以使用:

docker run -d -p 8080:80 nginx

這會啟動一個新的容器,并將主機的端口 8080 映射到容器的端口 80。

列出容器

要列出所有正在運行的容器,請使用 docker ps 命令。要查看所有容器(包括已停止的容器),請使用 -a 標志:

docker container ls -a

訪問容器

要訪問正在運行的容器的 shell,請使用 docker exec 命令:

docker exec -it CONTAINER_ID bash

CONTAINER_ID 替換為所需容器的 ID 或名稱。您可以在 docker ps 的輸出中找到它。

停止容器

要停止運行中的容器,請使用 docker stop 命令,后跟容器 ID 或名稱:

docker container stop CONTAINER_ID

刪除容器

停止容器后,我們可以使用 docker rm 命令,后跟容器 ID 或名稱,將其刪除:

docker container rm CONTAINER_ID

要在退出時自動刪除容器,請在運行容器時添加 --rm 標志:

docker run --rm IMAGE

Docker Compose

Docker Compose 是一個用于定義和運行多容器 Docker 應用程序的工具。它允許您使用一個簡單的名為?docker-compose.yml?的 YAML 文件創建、管理和運行應用程序。此文件描述了你的應用程序的服務、網絡和卷,只需使用一個命令就可以輕松運行和管理你的容器。

使用 Docker Compose 的一些好處包括:

  • 簡化容器管理: Docker Compose 允許您在一個地方定義和配置所有服務、網絡和卷,使其易于管理和維護。
  • 可重復構建: 共享你的?docker-compose.yml?文件,以確保他人運行相同的環境和服務。
  • 版本支持: Docker Compose 文件可以進行版本控制,以便更容易地與不同版本的 Docker Compose 工具進行兼容。

創建 Docker Compose 文件:

要創建一個?docker-compose.yml?文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定義的服務。下面是一個基本的?docker-compose.yml?文件示例:

version: "3.9"
services:  web:    
image: nginx:latest    
ports:      - "80:80"  
db:    image: 
mysql:latest    
environment:      
MYSQL_ROOT_PASSWORD: mysecretpassword

在這個示例中,我們指定了兩個服務:一個運行最新版本 nginx 鏡像的 Web 服務器(web),以及運行 MySQL 的數據庫服務器(db)。Web 服務器將其端口 80 暴露給主機,而數據庫服務器則設置了根密碼的環境變量。

運行 Docker Compose:

要運行你的 Docker Compose 應用程序,只需導航到包含你的?docker-compose.yml?文件的目錄,并運行以下命令:

docker-compose up

Docker Compose 將讀取文件并按指定的順序啟動定義的服務。

其他有用的命令:

  • docker-compose down:停止并刪除在?docker-compose.yml?文件中定義的所有正在運行的容器、網絡和卷。
  • docker-compose ps:列出在?docker-compose.yml?文件中定義的所有容器的狀態。
  • docker-compose logs:顯示在?docker-compose.yml?文件中定義的所有容器的日志。
  • docker-compose build:構建在?docker-compose.yml?文件中定義的所有鏡像。

這是一個關于 Docker Compose 的簡要介紹!了解更多信息,請查看官方的?Docker Compose 文檔

運行時配置選項

運行時配置選項允許你在運行 Docker 容器時自定義容器的行為和資源。這些選項對于管理容器的資源、安全性和網絡非常有幫助。以下是一些常用的運行時配置選項的簡要概述:

資源管理

  • CPU: 你可以使用 cpuscpu-shares 選項來限制容器的 CPU 使用率。cpus 選項限制容器可以使用的 CPU 核心數量,而 cpu-shares 選項為容器分配相對的 CPU 時間份額。

    docker run --cpus=2 --cpu-shares=512 your-image

  • 內存: 你可以使用 memorymemory-reservation 選項來限制和預留容器的內存。這可以幫助防止容器占用過多的系統資源。

    docker run --memory=1G --memory-reservation=500M your-image

安全性

  • 用戶: 默認情況下,容器作為 root 用戶運行。為了增加安全性,你可以使用 user 選項將容器作為其他用戶或 UID 運行。

    docker run --user 1000 your-image

  • 只讀根文件系統: 為了防止容器對文件系統進行不必要的更改,你可以使用 read-only 選項將根文件系統掛載為只讀。

    docker run --read-only your-image

網絡

  • 發布端口: 你可以使用 publish(或 p)選項將容器的端口發布到主機系統上。這允許外部系統訪問容器化的服務。

    docker run -p 80:80 your-image

  • 主機名和 DNS: 你可以使用 hostnamedns 選項來自定義容器的主機名和 DNS 設置。

    docker run --hostname=my-container --dns=8.8.8.8 your-image

包括這些運行時配置選項將允許你有效地管理容器的資源、安全性和網絡需求。有關可用運行時配置選項的完整列表,請參閱 Docker 的官方文檔。

  • docker-compose down:停止并刪除在?docker-compose.yml?文件中定義的所有正在運行的容器、網絡和卷。
  • docker-compose ps:列出在?docker-compose.yml?文件中定義的所有容器的狀態。
  • docker-compose logs:顯示在?docker-compose.yml?文件中定義的所有容器的日志。
  • docker-compose build:構建在?docker-compose.yml?文件中定義的所有鏡像。

這是一個關于 Docker Compose 的簡要介紹!了解更多信息,請查看官方的?Docker Compose 文檔

運行時配置選項

運行時配置選項允許你在運行 Docker 容器時自定義容器的行為和資源。這些選項對于管理容器的資源、安全性和網絡非常有幫助。以下是一些常用的運行時配置選項的簡要概述:

資源管理

  • CPU: 你可以使用 cpuscpu-shares 選項來限制容器的 CPU 使用率。cpus 選項限制容器可以使用的 CPU 核心數量,而 cpu-shares 選項為容器分配相對的 CPU 時間份額。

    docker run --cpus=2 --cpu-shares=512 your-image

  • 內存: 你可以使用 memorymemory-reservation 選項來限制和預留容器的內存。這可以幫助防止容器占用過多的系統資源。

    docker run --memory=1G --memory-reservation=500M your-image

安全性

  • 用戶: 默認情況下,容器作為 root 用戶運行。為了增加安全性,你可以使用 user 選項將容器作為其他用戶或 UID 運行。

    docker run --user 1000 your-image

  • 只讀根文件系統: 為了防止容器對文件系統進行不必要的更改,你可以使用 read-only 選項將根文件系統掛載為只讀。

    docker run --read-only your-image

網絡

  • 發布端口: 你可以使用 publish(或 p)選項將容器的端口發布到主機系統上。這允許外部系統訪問容器化的服務。

    docker run -p 80:80 your-image

  • 主機名和 DNS: 你可以使用 hostnamedns 選項來自定義容器的主機名和 DNS 設置。

    docker run --hostname=my-container --dns=8.8.8.8 your-image

包括這些運行時配置選項將允許你有效地管理容器的資源、安全性和網絡需求。有關可用運行時配置選項的完整列表,請參閱 Docker 的官方文檔。

最后

為了方便其他設備和平臺的小伙伴觀看往期文章:

微信公眾號搜索:Let us Coding,關注后即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

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

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

相關文章

IoTDB服務安裝教程-集群版

文章目錄 官方說明文檔下載地址服務安裝節點服務分配修改配置文件修改堆內存啟動集群啟動第一個節點啟動其他兩個節點的 ConfigNode 和 DataNode檢驗集群狀態修改集群密碼 【附錄】清理環境 集群擴容修改配置擴容驗證擴容結果 集群縮容縮容一個 ConfigNode縮容一個 DataNode驗證…

XCube——用于超高分辨率 3D 形狀和場景的生成模型!

他們的方法在稀疏體素網格的層次結構上訓練潛在擴散模型的層次結構。他們在稀疏結構 VAE 的潛在空間上進行擴散,它為層次結構的每個級別學習緊湊的潛在表示。 XCube 是稀疏體素層次上的分層潛在擴散模型,即從粗到細的 3D 稀疏體素網格序列,使…

靈茶 2023 - 12 - 11

鏈接 : Problem - C - Codeforces 題意 : 輸入一個長度 ≤1e5 的字符串 s,只包含小寫字母。 找到一個最小的 k,使得所有長度 > k 的連續子串,有公共字母(這些子串的交集不為空)。 思路 : 就是求每個字母的…

智能優化算法之粒子群模型(含python案例代碼)

粒子群優化模型概述 粒子群優化(Particle Swarm Optimization,簡稱PSO)是一種基于群體智能的優化算法,最早由美國社會心理學家James Kennedy和Russell Eberhart于1995年提出。PSO的靈感來自鳥群和魚群等自然界群體行為的觀察。 PS…

Linux驅動入門——編寫第一個驅動

目錄 前言 驅動入門知識 1.APP 打開的文件在內核中如何表示 2.打開字符設備節點時,內核中也有對應的 struct file 編寫 Hello 驅動程序步驟 1.流程介紹 2.驅動代碼: 3.應用層代碼: 4.本驅動程序的 Makefile 內容: 5.上機…

4fiddler抓包工具的使用

一、定義 1.1 抓包的定義 說明:客戶端向服務器發送請求以及服務器響應客戶端的請求,都是以數據包來傳遞的。 抓包(packet capture):通過工具攔截客戶端與服務器交互的數據包 1.2 fiddler的介紹 Fiddler是一個http協議調試代理工具&#…

Java程序設計基礎 - 課程概述

文章目錄 一、程序員最具共性的心理特征二、Java開發工程師的崗位要求(一)素質和職業道德需求(二)崗位能力需求統計三、針對Java工程師崗位需求的課程目標(一)熟練掌握Java編程語言,掌握編程技能(二)精通使用集成開發工具Eclipse或IntelliJ IDEA(三)需要將“用戶體驗…

市場全局復盤 20231208

一、板塊成交額排名: 資金流入前三個板塊K 線: 行業成交額排名: 個股資金流入排名: select 成交額排名 ,近日指標提示 ,短線主題 ,漲停分析,CODE,名稱,DDE大單凈量,現價,量比,連板天,周漲停,月漲停,年漲停天,連漲天,…

【每日一題】—— B. StORage room(Codeforces Round 912 (Div. 2))(位操作符)

🌏博客主頁:PH_modest的博客主頁 🚩當前專欄:每日一題 💌其他專欄: 🔴 每日反芻 🟡 C跬步積累 🟢 C語言跬步積累 🌈座右銘:廣積糧,緩稱…

工業傳感器

工業傳感器 電子元器件百科 文章目錄 工業傳感器前言一、工業傳感器是什么二、工業傳感器的類別三、工業傳感器的應用實例四、工業傳感器的作用原理總結前言 工業傳感器的應用可以幫助提高工業過程的效率、安全性和可靠性,實現工業自動化和智能化。 一、工業傳感器是什么 工…

使用阿里云國際CDN加速后網站無法訪問的排查步驟

使用阿里云國際CDN加速后網站無法訪問的排查步驟,下面是一些常見的問題,以:www.c.9he.com為例,如果解決不了來信服務器廠商解決。 檢查CDN訪問異常是CDN節點的問題還是源站問題 如果是源站訪問異常,請直接排查源站服務…

Faster R-CNN

Faster R-CNN是作者Ross Girshick繼Fast R-CNN后的又一力作。同樣使用VGG16作推理速度在GPU上達到5fps(包括候選區域的生成),準確率為網絡的backbone,也有進一步的提升。在2015年的ILSVRC以及COCO競賽中獲得多個項目的第一名。 算法流程 右邊這部分和Fa…

算法Day27 身材管理(三維背包)

身材管理(三維背包) Description Input Output Sample 代碼 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt(); // 輸入n的值int money sca…

KaiOS 運營商相關文件operator_variant_manager.js代碼功能和調試

gaia/apps/system/js/operator_variant_manager.js at master mozilla-b2g/gaia GitHub js文件接口功能 No 接口/常量 功能 1 OperatorVariantManager var OperatorVariantManager function(core) 2 OperatorVariantManager.IMPORTS OperatorVariantManager.I…

搜集怎么繪制三維曲線和曲面?

1、針對函數對象是單一變量、兩個函數的情況。用plot3函數;(三維曲線) 看一下matlab官方的例子: t 0:pi/50:10*pi; st sin(t); ct cos(t); plot3(st,ct,t) 繪制出來的曲線: 幾個比較關鍵的點: &…

【Marp】基于Markdown-Marp快速制作PPT

【Marp】基于Markdown-Marp快速制作PPT 文章目錄 【Marp】基于Markdown-Marp快速制作PPT零、參考資料一、Marp基本語法(創建分頁,排版圖片,更換主題,Marp擴展指令修改樣式)1、創建新的PPT頁面2、插入圖片 & 排版圖…

小功能實現(二十)分類統計,Map取值自增

前言 從Map取值,根據獲取的類型進行統計,若有則1,若無則新增新的分類純屬靈機一動 步驟 for (String str : stringList) {int counttypeMap.getOrDefault(str,0);typeMap.put(resultList[2],count); }

解決刪除文件后 WSL2 磁盤空間不釋放的問題

查看 Linux distributions 打開 PowerShell 并執行如下命令: wsl -l -v 搜索并找到 ext4.vhdx 文件 我的 ext4.vhdx 文件如下: C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx 由于…

vue中yarn install超時問題

囚籠中的網絡固然可以穩定局勢,不讓猴子們得以隨時醒悟!給你吃的你就好好吃,不要有其他的翻然醒悟的時刻。無論如何,愚蠢的活著也是一種幸福,聽著那些耐心尋味的統計幸福指數,我們不由的幸福的一批。。 最…

軟件開發流程分析

軟件開發流程分析 相關概念1 原型設計2 產品設計3 交互設計4 代碼實現詳細步驟 相關概念 前端:自研API,調用第三放API 后端:自研API,第三方API 數據庫:Mysql,數據采集,數據遷移 服務器&#xf…