最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1. docker run 的基本用法

docker run 的基本格式為:

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

例如,運(yùn)行一個(gè)簡單的 Ubuntu 容器:

docker run ubuntu

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

2. 常用的 docker run 選項(xiàng)

2.1. -d:后臺(tái)運(yùn)行容器

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

docker run -d ubuntu

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

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

每次啟動(dòng)容器時(shí),Docker 都會(huì)為它分配一個(gè)隨機(jī)名稱。如果你希望為容器指定一個(gè)自定義名稱,可以使用 --name 選項(xiàng)。

docker run --name my_container ubuntu

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

2.3. -it:交互式終端

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

docker run -it ubuntu bash

此命令將啟動(dòng)一個(gè) Ubuntu 容器,并進(jìn)入 Bash 終端,你可以直接與容器進(jìn)行交互。

2.4. -p:端口映射

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

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

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

docker run -p 8080:80 nginx

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

2.5. -v:掛載卷

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

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

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

docker run -v /data:/mnt ubuntu

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

2.6. --rm:自動(dòng)刪除容器

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

docker run --rm ubuntu

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

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

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

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

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

3. 容器生命周期管理

使用 docker run 啟動(dòng)的容器可以通過以下命令進(jìn)行管理:

  • docker ps:列出正在運(yùn)行的容器。
  • docker stop [container_name]:停止指定的容器。
  • docker start [container_name]:啟動(dòng)已停止的容器。
  • docker rm [container_name]:刪除一個(gè)已停止的容器。

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

docker stop my_container

4. 運(yùn)行容器的典型場(chǎng)景

4.1. 運(yùn)行一個(gè) Web 服務(wù)器

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

docker run -d -p 8080:80 nginx

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

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

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

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

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

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

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

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

這會(huì)將當(dāng)前目錄掛載到容器中的 /app 目錄,并進(jìn)入 Node.js 容器中的 Bash 終端。

5. 進(jìn)階用法

除了常用的選項(xiàng)外,docker run 還提供了很多進(jìn)階用法,可以讓用戶對(duì)容器的行為和資源進(jìn)行更精細(xì)的控制。

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

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

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

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

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

docker network create my_network
docker run --network my_network ubuntu

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

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

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

例如:

docker run --link db_container:mysql web_container

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

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

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

docker run --cpus="1.5" ubuntu

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

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

docker run --memory="512m" ubuntu

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

5.4. --restart:自動(dòng)重啟策略

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

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

例如:

docker run --restart always nginx

這會(huì)確保 Nginx 容器在退出后會(huì)自動(dòng)重啟。

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

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

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 實(shí)踐案例

為了更好地理解 docker run 的強(qiáng)大功能,以下是一些常見的實(shí)踐案例。

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

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

首先,運(yùn)行 MySQL 容器:

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

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

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

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

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

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

可以通過如下方式運(yùn)行測(cè)試容器:

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

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

總結(jié)

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

相關(guān)文章

  • Docker/DockerSwarm部署LNMP并平滑升級(jí)PHP過程

    Docker/DockerSwarm部署LNMP并平滑升級(jí)PHP過程

    本文詳細(xì)介紹了如何在CentOS上配置Docker環(huán)境、部署LNMP(Linux, Nginx, MySQL, PHP)服務(wù),并通過Docker Swarm實(shí)現(xiàn)PHP版本的平滑升級(jí),文章還涵蓋了配置內(nèi)核轉(zhuǎn)發(fā)、安裝Docker、配置鏡像倉庫、拉取鏡像、部署容器、連接容器、解決常見問題、升級(jí)應(yīng)用以及回滾測(cè)試等內(nèi)容
    2025-10-10
  • 詳解docker?API管理接口增加CA安全認(rèn)證

    詳解docker?API管理接口增加CA安全認(rèn)證

    這篇文章主要介紹了docker?API管理接口增加CA安全認(rèn)證,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 將Docker數(shù)據(jù)遷移到新磁盤的操作指南

    將Docker數(shù)據(jù)遷移到新磁盤的操作指南

    在容器化應(yīng)用的部署中,Docker 通常將數(shù)據(jù)存儲(chǔ)在默認(rèn)的 /var/lib/docker 目錄,然而,隨著容器數(shù)量的增加和鏡像的累積,該目錄可能會(huì)迅速占滿系統(tǒng)磁盤空間,從而影響系統(tǒng)的正常運(yùn)行,所以本文給大家介紹了如何將Docker數(shù)據(jù)遷移到新磁盤的操作指南,需要的朋友可以參考下
    2025-04-04
  • 安裝docker20.10.22版本教程

    安裝docker20.10.22版本教程

    文章詳細(xì)介紹了如何安裝Docker 20.10.22版本,包括安裝證書、寫入軟件源信息、查看可安裝版本、解決安裝問題、啟動(dòng)Docker、安裝工具、設(shè)置阿里云鏡像加速器、重啟并設(shè)置開機(jī)自啟以及查看版本信息
    2026-02-02
  • 將普通用戶加入Docker組,使用docker問題

    將普通用戶加入Docker組,使用docker問題

    這篇文章主要介紹了將普通用戶加入Docker組,使用docker問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • docker阿里云鏡像安裝tomcat無法訪問的解決過程

    docker阿里云鏡像安裝tomcat無法訪問的解決過程

    文章講述了在Linux系統(tǒng)中,由于阿里云鏡像默認(rèn)是最小的,不包含webapps目錄,導(dǎo)致無法直接使用Tomcat,通過在Docker容器中安裝Tomcat后,將webapps.dist目錄中的文件復(fù)制到webapps目錄可以解決這個(gè)問題
    2025-11-11
  • 如何構(gòu)建本地Docker鏡像倉庫

    如何構(gòu)建本地Docker鏡像倉庫

    這篇文章主要介紹了如何構(gòu)建本地Docker鏡像倉庫問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 深入淺析Docker容器中的Patroni

    深入淺析Docker容器中的Patroni

    今天將向大家介紹,如何搭建容器下的Patroni集群環(huán)境,Patroni作為開箱即用PG高可用工具,越來越多的被各個(gè)廠商用于云環(huán)境下使用
    2021-11-11
  • 開啟Docker的TCP通信端口方式

    開啟Docker的TCP通信端口方式

    這篇文章主要介紹了開啟Docker的TCP通信端口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 超詳細(xì)Docker Desktop下安裝rocketmq的教程

    超詳細(xì)Docker Desktop下安裝rocketmq的教程

    這篇文章主要介紹了Docker Desktop下安裝rocketmq,本文內(nèi)容通過圖文操作命令給大家講解的非常詳細(xì),需要的朋友可以參考下
    2021-10-10

最新評(píng)論

宜兰市| 临西县| 茶陵县| 南开区| 甘孜| 中山市| 日照市| 黄梅县| 台州市| 游戏| 潼南县| 保定市| 石城县| 瑞丽市| 高唐县| 龙海市| 渭南市| 巩留县| 扎鲁特旗| 清镇市| 万荣县| 溧阳市| 黄山市| 望江县| 阿城市| 蚌埠市| 阿荣旗| 九江县| 友谊县| 柳林县| 武安市| 临武县| 松溪县| 行唐县| 陇西县| 青阳县| 肥东县| 公安县| 永康市| 兴安盟| 荣昌县|