最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Docker學(xué)習(xí)路線11:Docker命令行

2023-07-25 23:17 作者:小萬哥丶  | 我要投稿

Docker CLI (命令行界面) 是一個(gè)強(qiáng)大的工具,可讓您與 Docker 容器、映像、卷和網(wǎng)絡(luò)進(jìn)行交互和管理。它為用戶提供了廣泛的命令,用于在其開發(fā)和生產(chǎn)工作流中創(chuàng)建、運(yùn)行和管理 Docker 容器和其他 Docker 資源。

安裝

要開始使用 Docker CLI,您需要在計(jì)算機(jī)上安裝 Docker。您可以從 Docker 文檔的官方安裝指南中按照您所使用的操作系統(tǒng)進(jìn)行安裝。

基本命令

以下是一些基本的 Docker CLI 命令,供您熟悉:

  • ??docker run:從 Docker 映像創(chuàng)建并啟動(dòng)容器

  • ??docker container:列出正在運(yùn)行的容器

  • ??docker image:列出系統(tǒng)中所有可用的映像

  • ??docker pull:從 Docker Hub 或其他注冊(cè)表拉取映像

  • ??docker push:將映像推送到 Docker Hub 或其他注冊(cè)表

  • ??docker build:從 Dockerfile 構(gòu)建映像

  • ??docker exec:在正在運(yùn)行的容器中運(yùn)行命令

  • ??docker logs:顯示容器的日志

Docker Run 選項(xiàng)

docker run?是 Docker CLI 中最重要的命令之一。您可以使用各種選項(xiàng)自定義容器的行為,例如:

  • ??d, --detach:在后臺(tái)運(yùn)行容器

  • ??e, --env:為容器設(shè)置環(huán)境變量

  • ??v, --volume:綁定掛載卷

  • ??p, --publish:將容器的端口發(fā)布到主機(jī)

  • ??name:為容器指定名稱

  • ??restart:指定容器的重啟策略

  • ??rm:容器退出時(shí)自動(dòng)刪除容器

Dockerfile

Dockerfile 是一個(gè)包含構(gòu)建 Docker 映像的指令的腳本。您可以使用 Docker CLI 使用 Dockerfile 構(gòu)建、更新和管理 Docker 映像。

以下是 Dockerfile 的一個(gè)簡(jiǎn)單示例:

#?Set?the?base?image?to?use
FROM?alpine:3.7
#?Update?the?system?and?install?packages
RUN?apk?update?&&?apk?add?curl
#?Set?the?working?directory
WORKDIR?/app
#?Copy?the?application?file
COPY?app.sh?.
#?Set?the?entry?point
ENTRYPOINT?["./app.sh"]

要構(gòu)建映像,請(qǐng)使用以下命令:

docker?build?-t?my-image?.

Docker Compose

Docker Compose 是一個(gè) CLI 工具,用于使用 YAML 文件定義和管理多容器 Docker 應(yīng)用程序。它與 Docker CLI 協(xié)作,提供了一種一致的方式來管理多個(gè)容器及其依賴項(xiàng)。

使用官方的安裝指南安裝 Docker Compose,然后您可以創(chuàng)建一個(gè)?docker-compose.yml?文件來定義和運(yùn)行多容器應(yīng)用程序:

version:?'3'
services:??
web:????
image:?webapp-image????
ports:??????-?"80:80"??
database:????
image:?mysql????
environment:??????-?MYSQL_ROOT_PASSWORD=my-secret-pw

使用以下命令運(yùn)行應(yīng)用程序:

docker-compose?up

總之,Docker CLI 是管理 Docker 容器和資源的強(qiáng)大而多才多藝的工具。一旦熟悉其命令和功能,您將能夠輕松開發(fā)、維護(hù)和部署使用 Docker 的應(yīng)用程序。

Docker鏡像

Docker鏡像是一種輕量級(jí)、獨(dú)立、可執(zhí)行的軟件包,其包含了運(yùn)行應(yīng)用程序所需的所有組件。這些組件包括:依賴項(xiàng)、庫、運(yùn)行時(shí)、系統(tǒng)工具和代碼等,以確保應(yīng)用程序在不同的環(huán)境中可以保持一致地運(yùn)行。

Docker鏡像是使用Dockerfile進(jìn)行構(gòu)建和管理的。Dockerfile是一個(gè)包含了創(chuàng)建Docker鏡像所需指令的腳本,提供了一個(gè)逐步設(shè)置應(yīng)用程序環(huán)境的指南。

使用Docker鏡像

Docker CLI提供了多個(gè)命令來管理和使用Docker鏡像。其中一些重要的命令包括:

  • ??docker image ls:列出本地系統(tǒng)上所有可用的鏡像。

  • ??docker build:從Dockerfile構(gòu)建鏡像。

  • ??docker image rm:刪除一個(gè)或多個(gè)鏡像。

  • ??docker pull:從注冊(cè)表(如Docker Hub)將鏡像拉到本地系統(tǒng)。

  • ??docker push:將鏡像推送到倉庫。

例如,要從Docker Hub拉取官方的Ubuntu鏡像,可以運(yùn)行以下命令:

docker?pull?ubuntu:latest

拉取鏡像后,可以使用docker run命令創(chuàng)建和運(yùn)行一個(gè)使用該鏡像的容器:

docker?run?-it?ubuntu:latest?/bin/bash

這個(gè)命令將創(chuàng)建一個(gè)新的容器,并使用**/bin/bash** shell在容器內(nèi)啟動(dòng)一個(gè)交互式會(huì)話。

共享鏡像

Docker鏡像可以使用容器注冊(cè)表(如Docker Hub、Google Container Registry或Amazon Elastic Container Registry(ECR))共享和分發(fā)。一旦將您的鏡像推送到注冊(cè)表中,其他人就可以輕松地訪問和使用它們。

要共享您的鏡像,您首先需要使用適當(dāng)?shù)拿袷綄?duì)其進(jìn)行標(biāo)記:

docker?tag?<image-id>?<username>/<repository>:<tag>

然后,您可以使用以下命令將標(biāo)記的鏡像推送到注冊(cè)表中:

docker?push?<username>/<repository>:<tag>

總之,Docker鏡像是Docker生態(tài)系統(tǒng)中不可或缺的一部分,允許開發(fā)人員打包其應(yīng)用程序、輕松地共享它們,并在不同的環(huán)境中確保一致性。通過理解Docker鏡像和管理它們的命令,您可以利用容器化的力量,增強(qiáng)您的開發(fā)工作流程。在您的開發(fā)過程中使用Docker鏡像可以大大提高開發(fā)效率,減少開發(fā)過程中的問題,讓您能夠更好地專注于應(yīng)用程序的核心開發(fā)。

容器

容器可以被視為輕量級(jí)的、獨(dú)立的可執(zhí)行軟件包,包括運(yùn)行所需的所有東西,包括代碼、運(yùn)行時(shí)、庫、環(huán)境變量和配置文件。容器將軟件與其環(huán)境隔離開來,確保其在不同環(huán)境下工作一致。

為什么使用容器?

  • ??可移植性:容器確保應(yīng)用程序在不同平臺(tái)上一致工作,無論是開發(fā)人員的筆記本電腦還是生產(chǎn)服務(wù)器。這消除了“它在我的機(jī)器上運(yùn)行”的問題。

  • ??效率:容器很輕量級(jí),因?yàn)樗鼈兪褂霉蚕碣Y源,沒有完整操作系統(tǒng)的開銷。這使得啟動(dòng)時(shí)間更快,減少資源使用。

  • ??可擴(kuò)展性:容器可以根據(jù)工作量輕松地進(jìn)行縮放,因此非常適合分布式應(yīng)用程序和微服務(wù)。

  • ??一致性:容器使得開發(fā)人員、QA 和運(yùn)維團(tuán)隊(duì)在整個(gè)應(yīng)用程序生命周期中擁有一致的環(huán)境,從而加快了部署流程。

  • ??安全性:容器提供了一定程度的隔離,使其與其他容器和底層主機(jī)系統(tǒng)隔離開來,有助于維護(hù)應(yīng)用程序的安全性。

使用 Docker CLI 工作

Docker CLI 提供了多個(gè)命令,可幫助您創(chuàng)建、管理和與容器交互。一些常用命令包括:

  • ??**docker run**:用于創(chuàng)建和啟動(dòng)新容器。

  • ??**docker container ls**:列出運(yùn)行中的容器。

  • ??**docker container stop**:停止運(yùn)行中的容器。

  • ??**docker container rm**:刪除已停止的容器。

  • ??**docker exec**:在運(yùn)行中的容器中執(zhí)行命令。

  • ??**docker logs**:獲取容器的日志,有助于調(diào)試問題。

Docker卷

Docker卷是一種用于存儲(chǔ)Docker容器生成和使用的數(shù)據(jù)的機(jī)制。它們?cè)试S您將數(shù)據(jù)與容器本身分開,從而輕松備份、遷移和管理持久性數(shù)據(jù)。

卷的重要性

Docker容器本質(zhì)上是暫時(shí)的,這意味著它們可以輕松地停止、刪除或替換。盡管這對(duì)應(yīng)用程序開發(fā)和部署非常有利,但處理持久性數(shù)據(jù)時(shí)會(huì)帶來挑戰(zhàn)。這就是卷的作用。它們提供了一種將數(shù)據(jù)存儲(chǔ)和管理與容器的生命周期分開的方法。

卷的類型

Docker中有三種類型的卷:

  • ??主機(jī)卷:它們存儲(chǔ)在主機(jī)機(jī)器的文件系統(tǒng)中,通常位于/var/lib/docker/volumes目錄中。這些可以很容易地訪問,但可能會(huì)帶來可移植性或文件系統(tǒng)兼容性問題。

  • ??匿名卷:這些是在運(yùn)行容器時(shí)沒有指定卷時(shí)自動(dòng)生成的。它們的ID由Docker生成,也存儲(chǔ)在主機(jī)機(jī)器的文件系統(tǒng)中。

  • ??命名卷:與匿名卷類似,命名卷也存儲(chǔ)在主機(jī)機(jī)器的文件系統(tǒng)中。但是,您可以提供自定義名稱,這樣在其他容器中引用或備份時(shí)更容易。

使用Docker CLI管理卷

Docker CLI提供了各種命令來管理卷:

  • ??docker volume create: 使用給定的名稱創(chuàng)建新卷。

  • ??docker volume ls: 列出系統(tǒng)中的所有卷。

  • ??docker volume inspect: 提供有關(guān)特定卷的詳細(xì)信息。

  • ??docker volume rm: 刪除卷。

  • ??docker volume prune: 刪除所有未使用的卷。

要在容器中使用卷,可以在docker run命令期間使用-v--volume標(biāo)志。例如:

docker?run?-d?--name?my-container?-v?my-named-volume:/var/lib/data?my-image

此命令使用“my-image”映像創(chuàng)建一個(gè)名為“my-container”的新容器,并在容器內(nèi)部將“my-named-volume”卷掛載到/var/lib/data路徑。

Docker 網(wǎng)絡(luò)

Docker 網(wǎng)絡(luò)提供了管理容器通信的重要方法。它允許容器使用各種網(wǎng)絡(luò)驅(qū)動(dòng)程序相互通信并與主機(jī)機(jī)器通信。通過理解和利用不同類型的網(wǎng)絡(luò)驅(qū)動(dòng)程序,您可以設(shè)計(jì)容器網(wǎng)絡(luò)以適應(yīng)特定的場(chǎng)景或應(yīng)用程序需求。

網(wǎng)絡(luò)驅(qū)動(dòng)程序

Docker 中有幾個(gè)可用的網(wǎng)絡(luò)驅(qū)動(dòng)程序。這里,我們將介紹四個(gè)最常見的驅(qū)動(dòng)程序:

  • ??bridge:容器的默認(rèn)網(wǎng)絡(luò)驅(qū)動(dòng)程序。它創(chuàng)建了一個(gè)私有網(wǎng)絡(luò),容器可以相互通信并與主機(jī)機(jī)器通信。在此網(wǎng)絡(luò)上的容器可以通過主機(jī)網(wǎng)絡(luò)訪問外部資源。

  • ??host:該驅(qū)動(dòng)程序取消了網(wǎng)絡(luò)隔離并允許容器共享主機(jī)的網(wǎng)絡(luò)。在網(wǎng)絡(luò)性能至關(guān)重要的情況下,它非常有用,因?yàn)樗钚』巳萜骶W(wǎng)絡(luò)的開銷。

  • ??none:該網(wǎng)絡(luò)驅(qū)動(dòng)程序禁用容器網(wǎng)絡(luò)。使用此驅(qū)動(dòng)程序的容器在沒有任何網(wǎng)絡(luò)訪問的隔離環(huán)境下運(yùn)行。

  • ??overlay:該網(wǎng)絡(luò)驅(qū)動(dòng)程序使部署在不同主機(jī)上的容器能夠相互通信。它專為 Docker Swarm 設(shè)計(jì),并且非常適合多主機(jī)或基于集群的容器部署。

管理 Docker 網(wǎng)絡(luò)

Docker CLI 提供了各種命令來管理網(wǎng)絡(luò)。以下是一些有用的命令:

  • ??列出所有網(wǎng)絡(luò):docker network ls

  • ??檢查網(wǎng)絡(luò):docker network inspect <network_name>

  • ??創(chuàng)建新網(wǎng)絡(luò):docker network create --driver <driver_type> <network_name>

  • ??將容器連接到網(wǎng)絡(luò):docker network connect <network_name> <container_name>

  • ??將容器與網(wǎng)絡(luò)斷開連接:docker network disconnect <network_name> <container_name>

  • ??刪除網(wǎng)絡(luò):docker network rm <network_name>

最后

為了方便其他設(shè)備和平臺(tái)的小伙伴觀看往期文章,鏈接奉上:

公眾號(hào)?Let us Coding,???/strong>知乎,開源中國CSDN,思否,掘金,InfoQ簡(jiǎn)書,博客園,慕課51CTO,helloworld騰訊開發(fā)者社區(qū),阿里開發(fā)者社區(qū)

看完如果覺得有幫助,歡迎點(diǎn)贊、收藏關(guān)注


Docker學(xué)習(xí)路線11:Docker命令行的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
龙海市| 和田县| 垣曲县| 买车| 游戏| 陇川县| 宁国市| 潮州市| 卢湾区| 云浮市| 桑日县| 鹤壁市| 湘乡市| 柳江县| 宁南县| 大洼县| 凤庆县| 福安市| 永泰县| 邳州市| 新绛县| 玛曲县| 望江县| 法库县| 新津县| 锡林郭勒盟| 临清市| 长兴县| 牙克石市| 柞水县| 同江市| 枣强县| 德阳市| 和顺县| 香港| 驻马店市| 文化| 桦川县| 四子王旗| 娱乐| 白城市|