Docker學(xué)習(xí)路線9:運行容器

要啟動一個新的容器,我們使用?docker run
?命令,后跟鏡像名稱?;菊Z法如下:
docker?run?[選項]?鏡像?[COMMAND]?[ARG...]
例如,要運行官方的 Nginx 鏡像,我們可以使用:
docker?run?-d?-p?8080:80?nginx
這會啟動一個新的容器,并將主機的端口 8080 映射到容器的端口 80。
列出容器
要列出所有正在運行的容器,請使用?docker ps
?命令。要查看所有容器(包括已停止的容器),請使用?-a
?標(biāo)志:
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
?標(biāo)志:
docker?run?--rm?IMAGE
Docker Compose
Docker Compose 是一個用于定義和運行多容器 Docker 應(yīng)用程序的工具。它允許您使用一個簡單的名為?docker-compose.yml
?的 YAML 文件創(chuàng)建、管理和運行應(yīng)用程序。此文件描述了你的應(yīng)用程序的服務(wù)、網(wǎng)絡(luò)和卷,只需使用一個命令就可以輕松運行和管理你的容器。
使用 Docker Compose 的一些好處包括:
??簡化容器管理:?Docker Compose 允許您在一個地方定義和配置所有服務(wù)、網(wǎng)絡(luò)和卷,使其易于管理和維護。
??可重復(fù)構(gòu)建:?共享你的?
docker-compose.yml
?文件,以確保他人運行相同的環(huán)境和服務(wù)。??版本支持:?Docker Compose 文件可以進行版本控制,以便更容易地與不同版本的 Docker Compose 工具進行兼容。
創(chuàng)建 Docker Compose 文件:
要創(chuàng)建一個?docker-compose.yml
?文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定義的服務(wù)。下面是一個基本的?docker-compose.yml
?文件示例:
version:?"3.9"services:??web:????image:?nginx:latest????ports:??????-?"80:80"??db:????image:?mysql:latest????environment:??????MYSQL_ROOT_PASSWORD:?mysecretpassword
在這個示例中,我們指定了兩個服務(wù):一個運行最新版本 nginx 鏡像的 Web 服務(wù)器(**web
),以及運行 MySQL 的數(shù)據(jù)庫服務(wù)器(db
**)。Web 服務(wù)器將其端口 80 暴露給主機,而數(shù)據(jù)庫服務(wù)器則設(shè)置了根密碼的環(huán)境變量。
運行 Docker Compose:
要運行你的 Docker Compose 應(yīng)用程序,只需導(dǎo)航到包含你的?docker-compose.yml
?文件的目錄,并運行以下命令:
docker-compose?up
Docker Compose 將讀取文件并按指定的順序啟動定義的服務(wù)。
其他有用的命令:
要啟動一個新的容器,我們使用?docker run
?命令,后跟鏡像名稱。基本語法如下:
docker?run?[選項]?鏡像?[COMMAND]?[ARG...]
例如,要運行官方的 Nginx 鏡像,我們可以使用:
docker?run?-d?-p?8080:80?nginx
這會啟動一個新的容器,并將主機的端口 8080 映射到容器的端口 80。
列出容器
要列出所有正在運行的容器,請使用?docker ps
?命令。要查看所有容器(包括已停止的容器),請使用?-a
?標(biāo)志:
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
?標(biāo)志:
docker?run?--rm?IMAGE
Docker Compose
Docker Compose 是一個用于定義和運行多容器 Docker 應(yīng)用程序的工具。它允許您使用一個簡單的名為?docker-compose.yml
?的 YAML 文件創(chuàng)建、管理和運行應(yīng)用程序。此文件描述了你的應(yīng)用程序的服務(wù)、網(wǎng)絡(luò)和卷,只需使用一個命令就可以輕松運行和管理你的容器。
使用 Docker Compose 的一些好處包括:
??簡化容器管理:?Docker Compose 允許您在一個地方定義和配置所有服務(wù)、網(wǎng)絡(luò)和卷,使其易于管理和維護。
??可重復(fù)構(gòu)建:?共享你的?
docker-compose.yml
?文件,以確保他人運行相同的環(huán)境和服務(wù)。??版本支持:?Docker Compose 文件可以進行版本控制,以便更容易地與不同版本的 Docker Compose 工具進行兼容。
創(chuàng)建 Docker Compose 文件:
要創(chuàng)建一個?docker-compose.yml
?文件,首先指定您想要使用的 Docker Compose 版本,然后是您想要定義的服務(wù)。下面是一個基本的?docker-compose.yml
?文件示例:
version:?"3.9"services:??web:????image:?nginx:latest????ports:??????-?"80:80"??db:????image:?mysql:latest????environment:??????MYSQL_ROOT_PASSWORD:?mysecretpassword
在這個示例中,我們指定了兩個服務(wù):一個運行最新版本 nginx 鏡像的 Web 服務(wù)器(**web
),以及運行 MySQL 的數(shù)據(jù)庫服務(wù)器(db
**)。Web 服務(wù)器將其端口 80 暴露給主機,而數(shù)據(jù)庫服務(wù)器則設(shè)置了根密碼的環(huán)境變量。
運行 Docker Compose:
要運行你的 Docker Compose 應(yīng)用程序,只需導(dǎo)航到包含你的?docker-compose.yml
?文件的目錄,并運行以下命令:
docker-compose?up
Docker Compose 將讀取文件并按指定的順序啟動定義的服務(wù)。
其他有用的命令:
??
docker-compose down
:停止并刪除在?docker-compose.yml
?文件中定義的所有正在運行的容器、網(wǎng)絡(luò)和卷。??
docker-compose ps
:列出在?docker-compose.yml
?文件中定義的所有容器的狀態(tài)。??
docker-compose logs
:顯示在?docker-compose.yml
?文件中定義的所有容器的日志。??
docker-compose build
:構(gòu)建在?docker-compose.yml
?文件中定義的所有鏡像。
這是一個關(guān)于 Docker Compose 的簡要介紹!了解更多信息,請查看官方的?Docker Compose 文檔。
運行時配置選項
運行時配置選項允許你在運行 Docker 容器時自定義容器的行為和資源。這些選項對于管理容器的資源、安全性和網(wǎng)絡(luò)非常有幫助。以下是一些常用的運行時配置選項的簡要概述:
資源管理
??CPU:?你可以使用?
cpus
?和?cpu-shares
?選項來限制容器的 CPU 使用率。cpus
?選項限制容器可以使用的 CPU 核心數(shù)量,而?cpu-shares
?選項為容器分配相對的 CPU 時間份額。?docker run --cpus=2 --cpu-shares=512 your-image
??內(nèi)存:?你可以使用?
memory
?和?memory-reservation
?選項來限制和預(yù)留容器的內(nèi)存。這可以幫助防止容器占用過多的系統(tǒng)資源。?docker run --memory=1G --memory-reservation=500M your-image
安全性
??用戶:?默認(rèn)情況下,容器作為?
root
?用戶運行。為了增加安全性,你可以使用?user
?選項將容器作為其他用戶或 UID 運行。?docker run --user 1000 your-image
??只讀根文件系統(tǒng):?為了防止容器對文件系統(tǒng)進行不必要的更改,你可以使用?
read-only
?選項將根文件系統(tǒng)掛載為只讀。?docker run --read-only your-image
網(wǎng)絡(luò)
??發(fā)布端口:?你可以使用?
publish
(或?p
)選項將容器的端口發(fā)布到主機系統(tǒng)上。這允許外部系統(tǒng)訪問容器化的服務(wù)。?docker run -p 80:80 your-image
??主機名和 DNS:?你可以使用?
hostname
?和?dns
?選項來自定義容器的主機名和 DNS 設(shè)置。?docker run --hostname=my-container --dns=8.8.8.8 your-image
包括這些運行時配置選項將允許你有效地管理容器的資源、安全性和網(wǎng)絡(luò)需求。有關(guān)可用運行時配置選項的完整列表,請參閱 Docker 的官方文檔。
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號?Let us Coding
,???/strong>,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發(fā)者社區(qū),阿里開發(fā)者社區(qū)
看完如果覺得有幫助,歡迎點贊、收藏和關(guān)注
??
docker-compose down
:停止并刪除在?docker-compose.yml
?文件中定義的所有正在運行的容器、網(wǎng)絡(luò)和卷。??
docker-compose ps
:列出在?docker-compose.yml
?文件中定義的所有容器的狀態(tài)。??
docker-compose logs
:顯示在?docker-compose.yml
?文件中定義的所有容器的日志。??
docker-compose build
:構(gòu)建在?docker-compose.yml
?文件中定義的所有鏡像。
這是一個關(guān)于 Docker Compose 的簡要介紹!了解更多信息,請查看官方的?Docker Compose 文檔。
運行時配置選項
運行時配置選項允許你在運行 Docker 容器時自定義容器的行為和資源。這些選項對于管理容器的資源、安全性和網(wǎng)絡(luò)非常有幫助。以下是一些常用的運行時配置選項的簡要概述:
資源管理
??CPU:?你可以使用?
cpus
?和?cpu-shares
?選項來限制容器的 CPU 使用率。cpus
?選項限制容器可以使用的 CPU 核心數(shù)量,而?cpu-shares
?選項為容器分配相對的 CPU 時間份額。?docker run --cpus=2 --cpu-shares=512 your-image
??內(nèi)存:?你可以使用?
memory
?和?memory-reservation
?選項來限制和預(yù)留容器的內(nèi)存。這可以幫助防止容器占用過多的系統(tǒng)資源。?docker run --memory=1G --memory-reservation=500M your-image
安全性
??用戶:?默認(rèn)情況下,容器作為?
root
?用戶運行。為了增加安全性,你可以使用?user
?選項將容器作為其他用戶或 UID 運行。?docker run --user 1000 your-image
??只讀根文件系統(tǒng):?為了防止容器對文件系統(tǒng)進行不必要的更改,你可以使用?
read-only
?選項將根文件系統(tǒng)掛載為只讀。?docker run --read-only your-image
網(wǎng)絡(luò)
??發(fā)布端口:?你可以使用?
publish
(或?p
)選項將容器的端口發(fā)布到主機系統(tǒng)上。這允許外部系統(tǒng)訪問容器化的服務(wù)。?docker run -p 80:80 your-image
??主機名和 DNS:?你可以使用?
hostname
?和?dns
?選項來自定義容器的主機名和 DNS 設(shè)置。?docker run --hostname=my-container --dns=8.8.8.8 your-image
包括這些運行時配置選項將允許你有效地管理容器的資源、安全性和網(wǎng)絡(luò)需求。有關(guān)可用運行時配置選項的完整列表,請參閱 Docker 的官方文檔。
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號?Let us Coding
,???/strong>,知乎,開源中國,CSDN,思否,掘金,InfoQ,簡書,博客園,慕課,51CTO,helloworld,騰訊開發(fā)者社區(qū),阿里開發(fā)者社區(qū)
看完如果覺得有幫助,歡迎點贊、收藏和關(guān)注