欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章看懂docker?run的使用方法

 更新時間:2025年03月27日 10:22:57   作者:代碼探險家(小符)  
在Docker中,run應(yīng)該是用戶使用最多的命令了,很多人不是很明白run命令的用法,這篇文章主要介紹了關(guān)于docker?run的使用方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1. docker run 的基本用法

docker run 的基本格式為:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • IMAGE:你想要運行的 Docker 鏡像名。
  • COMMAND:你希望在容器中執(zhí)行的命令(可選)。
  • [ARG...]:傳遞給命令的參數(shù)(可選)。

例如,運行一個簡單的 Ubuntu 容器:

docker run ubuntu

這會從 Docker Hub 拉取 ubuntu 鏡像(如果本地不存在),并啟動一個基于該鏡像的容器。

2. 常用的 docker run 選項

2.1. -d:后臺運行容器

使用 -d 選項可以讓容器在后臺運行,而不是占據(jù)當前終端。它是“detached”模式的縮寫。

docker run -d ubuntu

此時容器會在后臺運行,你不會看到輸出,但可以通過 docker ps 查看容器的狀態(tài)。

2.2. --name:為容器指定名稱

每次啟動容器時,Docker 都會為它分配一個隨機名稱。如果你希望為容器指定一個自定義名稱,可以使用 --name 選項。

docker run --name my_container ubuntu

這樣,你的容器將以 my_container 為名稱,而不是自動生成的名字。

2.3. -it:交互式終端

-i 和 -t 常常一起使用,分別表示交互式模式(-i)和分配一個偽終端(-t)。這通常用于需要與容器交互的場景,例如運行 Bash 終端:

docker run -it ubuntu bash

此命令將啟動一個 Ubuntu 容器,并進入 Bash 終端,你可以直接與容器進行交互。

2.4. -p:端口映射

當容器內(nèi)部的應(yīng)用需要通過特定端口與外部通信時,可以使用 -p 選項將容器的端口映射到主機的端口。格式為:

docker run -p [host_port]:[container_port] IMAGE

例如,將本地主機的 8080 端口映射到容器的 80 端口:

docker run -p 8080:80 nginx

此時,你可以通過訪問 http://localhost:8080 來與 Nginx 服務(wù)器交互。

2.5. -v:掛載卷

為了在主機和容器之間共享文件,Docker 提供了卷(Volume)功能。使用 -v 選項可以將主機的目錄掛載到容器中。

docker run -v /host/path:/container/path ubuntu

例如,將本地主機的 /data 目錄掛載到容器的 /mnt 目錄:

docker run -v /data:/mnt ubuntu

這樣,容器可以訪問并修改主機上的 /data 目錄內(nèi)容。

2.6. --rm:自動刪除容器

默認情況下,容器在退出后會保留它的文件系統(tǒng)和狀態(tài)。使用 --rm 選項可以在容器退出時自動刪除該容器,以節(jié)省資源。

docker run --rm ubuntu

此容器在任務(wù)完成后將被自動刪除。

2.7. -e:設(shè)置環(huán)境變量

通過 -e 選項,可以在容器中設(shè)置環(huán)境變量。例如,運行一個 MySQL 容器時,通常需要設(shè)置 MySQL 的 root 用戶密碼:

docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql

這會在容器中設(shè)置 MYSQL_ROOT_PASSWORD 環(huán)境變量。

3. 容器生命周期管理

使用 docker run 啟動的容器可以通過以下命令進行管理:

  • docker ps:列出正在運行的容器。
  • docker stop [container_name]:停止指定的容器。
  • docker start [container_name]:啟動已停止的容器。
  • docker rm [container_name]:刪除一個已停止的容器。

例如,停止名為 my_container 的容器:

docker stop my_container

4. 運行容器的典型場景

4.1. 運行一個 Web 服務(wù)器

使用 docker run 快速啟動一個 Web 服務(wù)器是 Docker 的常見用法。例如,運行一個 Nginx 服務(wù)器,并將主機的 8080 端口映射到容器的 80 端口:

docker run -d -p 8080:80 nginx

此時,你可以通過訪問 http://localhost:8080 來查看 Nginx 服務(wù)器的默認頁面。

4.2. 運行數(shù)據(jù)庫服務(wù)

你可以使用 docker run 輕松啟動一個數(shù)據(jù)庫服務(wù)。例如,啟動一個 MySQL 容器,并設(shè)置 root 用戶的密碼:

docker run -d -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql

這會啟動一個 MySQL 容器,外界可以通過端口 3306 訪問數(shù)據(jù)庫。

4.3. 本地開發(fā)環(huán)境

在開發(fā)過程中,很多開發(fā)者使用 Docker 運行本地開發(fā)環(huán)境。例如,運行一個帶有 Node.js 的容器:

docker run -it -v $(pwd):/app -w /app node bash

這會將當前目錄掛載到容器中的 /app 目錄,并進入 Node.js 容器中的 Bash 終端。

5. 進階用法

除了常用的選項外,docker run 還提供了很多進階用法,可以讓用戶對容器的行為和資源進行更精細的控制。

5.1. --network:自定義網(wǎng)絡(luò)配置

Docker 提供了多種網(wǎng)絡(luò)模式,例如 bridge、host 和 overlay 等。在容器啟動時,可以通過 --network 選項指定網(wǎng)絡(luò)模式。

  • bridge(默認模式):容器之間通過 NAT 網(wǎng)絡(luò)隔離。
  • host:容器和主機共享同一個網(wǎng)絡(luò)棧,這使得容器中的服務(wù)可以直接使用主機的 IP 和端口。
docker run --network host nginx

此時,容器中的 Nginx 服務(wù)會與主機共享網(wǎng)絡(luò)。

還可以通過 docker network create 創(chuàng)建自定義的網(wǎng)絡(luò),容器可以通過該網(wǎng)絡(luò)進行互聯(lián)。

docker network create my_network
docker run --network my_network ubuntu

5.2. --link:連接其他容器

--link 選項允許一個容器與另一個容器進行通信,主要用于在沒有自定義網(wǎng)絡(luò)的情況下快速實現(xiàn)容器間的網(wǎng)絡(luò)連接。它的格式為:

docker run --link [other_container_name]:[alias] IMAGE

例如:

docker run --link db_container:mysql web_container

此命令會將名為 db_container 的容器的網(wǎng)絡(luò)別名設(shè)置為 mysql,并讓 web_container 能通過 mysql 這個別名訪問 db_container。

5.3. --cpus 和 --memory:限制容器資源

為了防止容器占用過多的系統(tǒng)資源,Docker 提供了 CPU 和內(nèi)存的限制選項。--cpus 選項允許指定容器可以使用的 CPU 數(shù)量:

docker run --cpus="1.5" ubuntu

這將限制容器最多使用 1.5 個 CPU 核心。

--memory 選項則用來限制容器的內(nèi)存使用:

docker run --memory="512m" ubuntu

這將限制容器使用不超過 512MB 的內(nèi)存。

5.4. --restart:自動重啟策略

--restart 選項允許指定容器的自動重啟策略,這在生產(chǎn)環(huán)境中非常有用。常用的策略有:

  • no:不重啟(默認值)。
  • on-failure:當容器非正常退出時(退出碼不為 0)自動重啟。
  • always:無論退出碼為何,容器都會自動重啟。
  • unless-stopped:容器會在非手動停止的情況下自動重啟。

例如:

docker run --restart always nginx

這會確保 Nginx 容器在退出后會自動重啟。

5.5. --env-file:批量設(shè)置環(huán)境變量

除了使用 -e 來單獨設(shè)置環(huán)境變量,Docker 還支持通過 --env-file 從文件中批量加載環(huán)境變量。文件的格式是一行一個變量:

docker run --env-file ./env.list ubuntu

env.list 文件的內(nèi)容示例如下:

MYSQL_ROOT_PASSWORD=my-secret-pw
MYSQL_DATABASE=mydb

這種方式可以方便地管理大量的環(huán)境變量。

6. docker run 實踐案例

為了更好地理解 docker run 的強大功能,以下是一些常見的實踐案例。

6.1. 部署一個 LAMP 環(huán)境

假設(shè)你需要快速部署一個 Linux + Apache + MySQL + PHP (LAMP) 的開發(fā)環(huán)境,使用 docker run 可以輕松實現(xiàn)。

首先,運行 MySQL 容器:

docker run -d --name mysql_container -e MYSQL_ROOT_PASSWORD=rootpassword -e MYSQL_DATABASE=app_db mysql

然后,運行 Apache 和 PHP 的組合容器,并將它與 MySQL 容器鏈接:

docker run -d --name web_container --link mysql_container:mysql -p 8080:80 php:apache

此時,訪問 http://localhost:8080 即可查看 LAMP 環(huán)境下的網(wǎng)站。

6.2. 持續(xù)集成(CI)環(huán)境中的應(yīng)用測試

在持續(xù)集成(CI)環(huán)境中,docker run 通常用于自動化測試。例如,在每次代碼提交后,可以使用一個干凈的容器環(huán)境來運行測試,確保代碼的正確性。

可以通過如下方式運行測試容器:

docker run --rm -v $(pwd):/app -w /app maven mvn test

這個命令會拉取 Maven 鏡像,在容器中執(zhí)行測試,并在完成后自動刪除容器。

總結(jié)

到此這篇關(guān)于docker run使用方法的文章就介紹到這了,更多相關(guān)docker run使用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker配置國內(nèi)源全過程

    docker配置國內(nèi)源全過程

    這篇文章主要介紹了docker配置國內(nèi)源全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 使用Docker安裝SonarQube的詳細教程

    使用Docker安裝SonarQube的詳細教程

    這篇文章主要介紹了Docker安裝SonarQube的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 使用Docker容器部署rocketmq單機的全過程

    使用Docker容器部署rocketmq單機的全過程

    這篇文章主要介紹了使用Docker容器部署rocketmq單機,詳細介紹了查詢鏡像拉取鏡像的命令,對Docker部署rocketmq相關(guān)知識感興趣的朋友一起看看吧
    2022-04-04
  • 告別Docker請求超時之一步步排查與詳細解決方案

    告別Docker請求超時之一步步排查與詳細解決方案

    在Ubuntu系統(tǒng)上安裝Docker后,運行docker?run?hello-world時遇到連接超時問題,下面這篇文章主要介紹了Docker請求超時一步步排查與詳細解決方案的相關(guān)資料,需要的朋友可以參考下
    2025-02-02
  • 淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)

    淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)

    本篇文章主要介紹了淺談Docker 容器數(shù)據(jù)卷掛載小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Docker使用Bind9實現(xiàn)域名解析的思路詳解

    Docker使用Bind9實現(xiàn)域名解析的思路詳解

    這篇文章主要介紹了DOCKER使用BIND9實現(xiàn)域名解析,主要包括刷新服務(wù)修改配置文件信息,實現(xiàn)思路也很簡單,本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • docker如何運行redis

    docker如何運行redis

    文章詳細介紹了如何使用Docker下載、配置和啟動Redis鏡像,包括指定版本、創(chuàng)建掛載目錄、修改配置文件(如啟用持久化、設(shè)置密碼等)以及啟動容器的步驟
    2024-11-11
  • Docker-Compose?容器集群的快速編排方法

    Docker-Compose?容器集群的快速編排方法

    Docker-Compose項目由Python編寫,調(diào)用Docker服務(wù)提供的API來對容器進行管理。因此,只要所操作的平臺支持Docker API, 就可以在其上利用Compose來進行編排管理,這篇文章主要介紹了Docker-Compose?容器集群的快速編排,需要的朋友可以參考下
    2022-07-07
  • Spring?Boot?分層打包?Docker?鏡像實踐及分析(推薦)

    Spring?Boot?分層打包?Docker?鏡像實踐及分析(推薦)

    這篇文章主要介紹了Spring?Boot?分層打包?Docker?鏡像實踐及分析,本文通過圖文并茂的形式實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • docker入門之容器介紹

    docker入門之容器介紹

    這篇文章主要介紹了docker入門之容器介紹的相關(guān)資料,需要的朋友可以參考下
    2018-10-10

最新評論