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

Ubuntu系統(tǒng)下Docker鏡像構(gòu)建與容器管理的完整指南

 更新時(shí)間:2026年05月07日 08:46:13   作者:炘爚  
這篇文章主要為大家詳細(xì)介紹了Docker鏡像構(gòu)建與容器管理的核心知識(shí),主要內(nèi)容包括鏡像構(gòu)建,容器啟動(dòng),端口映射等,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

一、安裝Docker

依次按照下面步驟即可完成docker的安裝。

1、更新軟件源

sudo apt update

2、安裝基本軟件

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y

3、指定使用阿里云鏡像

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

4、安裝docker-ce

sudo apt-get install docker-ce -y

5、查看docker版本

docker version

6、配置可用鏡像源,創(chuàng)建daemon.json文件,切換到/etc/docker

cd /etc/docker
sudo touch daemon.json

7、編輯/etc/docker/daemon.json文件

sudo vim daemon.json

8、把下面的內(nèi)容復(fù)制到daemon.json文件中

{
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://hub.rat.dev"
    ]
}

9、重啟docker

systemctl daemon-reload
systemctl restart docker

10、繼續(xù)驗(yàn)證和部署

# 1. 拉取測試鏡像
docker pull hello-world
docker run hello-world

11、拉取nginx

# 1. 拉取 Nginx
docker pull nginx

# 2. 運(yùn)行 Nginx 容器
docker run -d --name my-nginx -p 8080:80 nginx

# 3. 查看運(yùn)行狀態(tài)
docker ps

12、拉取redis

docker run -d --name my-redis -p 6380:6379 redis

13、拉取mysql

docker run -d --name my-mysql -p 3366:3365 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

二、鏡像構(gòu)建

1. 什么是 Docker 鏡像

  • 它是一個(gè)只讀的模板,包含了運(yùn)行應(yīng)用所需的一切:代碼、依賴庫、配置文件、環(huán)境變量等。
  • 可以把它想象成一個(gè)打包好的綠色軟件安裝包,拿到哪里都能直接運(yùn)行,不用再裝依賴。
  • 鏡像的底層是分層存儲(chǔ):比如 nginx:alpine 鏡像,底層是 Alpine Linux 系統(tǒng),上層是 Nginx 服務(wù),每一層都是只讀的,修改時(shí)只會(huì)在最上層添加新層,節(jié)省空間。

2. 鏡像構(gòu)建的兩種方式

方式 1:拉取官方鏡像(docker pull)

命令格式:

docker pull 鏡像名:版本
# 比如:
docker pull nginx:alpine
docker pull mysql:8.0
docker pull redis:alpine

原理:從 Docker Hub(官方鏡像倉庫)下載別人已經(jīng)構(gòu)建好的鏡像,直接用,不用自己寫配置。

配置的國內(nèi)鏡像源 ustc.edu.cn 就是用來加速下載的,面試可以說:“我配置了國內(nèi)鏡像源,解決了官方倉庫訪問慢的問題”

方式 2:自定義構(gòu)建(docker build+ Dockerfile)

核心文件:Dockerfile(鏡像的構(gòu)建腳本)

一個(gè)完整的 Nginx 項(xiàng)目鏡像構(gòu)建流程:

1.準(zhǔn)備項(xiàng)目文件:index.html(你的網(wǎng)頁代碼)

2.寫 Dockerfile

# 1. 基礎(chǔ)鏡像:基于輕量版 Nginx 構(gòu)建
FROM nginx:alpine
# 2. 復(fù)制本地文件到容器的 Nginx 目錄
COPY index.html /usr/share/nginx/html/index.html
# 3. 聲明容器提供服務(wù)的端口
EXPOSE 80
# 4. 容器啟動(dòng)時(shí)執(zhí)行的命令(讓 Nginx 前臺(tái)運(yùn)行,容器不會(huì)退出)
CMD ["nginx", "-g", "daemon off;"]

3.構(gòu)建鏡像:

docker build -t my-web-app:v1 .

我了解 Dockerfile 編寫,能將靜態(tài)項(xiàng)目打包成鏡像,實(shí)現(xiàn)一次構(gòu)建、隨處運(yùn)行,解決了開發(fā)環(huán)境和生產(chǎn)環(huán)境不一致的問題

二、容器啟動(dòng)、端口映射與環(huán)境隔離

1. 容器是什么?和鏡像的關(guān)系?

  • 容器是鏡像運(yùn)行起來的實(shí)例,一個(gè)鏡像可以啟動(dòng)無數(shù)個(gè)容器。
  • 鏡像只讀,容器可寫:啟動(dòng)容器時(shí),Docker 會(huì)在鏡像的只讀層上添加一個(gè)可寫層,所有修改都發(fā)生在可寫層,不會(huì)影響鏡像本身。
  • 容器和虛擬機(jī)的區(qū)別:
    • 虛擬機(jī):模擬一整套硬件,運(yùn)行完整的操作系統(tǒng),占用資源多、啟動(dòng)慢。
    • Docker 容器:共享主機(jī)的內(nèi)核,只打包應(yīng)用和依賴,占用資源少、秒級啟動(dòng),這就是 “輕量級容器化” 的優(yōu)勢。

2. 容器啟動(dòng)(docker run)

命令格式:

docker run [參數(shù)] 鏡像名

你必須掌握的 3 個(gè)核心參數(shù):

  1. -d:后臺(tái)運(yùn)行容器,不占用終端,比如 docker run -d nginx:alpine
  2. --name:給容器起個(gè)名字,方便管理,比如 docker run -d --name my-nginx nginx:alpine
  3. -e:設(shè)置環(huán)境變量,比如啟動(dòng) MySQL 時(shí)設(shè)置密碼:docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

3. 端口映射(-p)—— 外部訪問容器服務(wù)的關(guān)鍵

命令格式:

docker run -p 主機(jī)端口:容器端口 鏡像名
# 比如:
docker run -d -p 8080:80 --name my-nginx nginx:alpine

含義:把主機(jī)的 8080 端口,映射到容器的 80 端口(Nginx 默認(rèn)端口),外部訪問主機(jī)IP:8080 就能訪問容器里的 Nginx 服務(wù)。

我了解 Docker 端口映射原理,能將容器服務(wù)暴露到主機(jī)網(wǎng)絡(luò),實(shí)現(xiàn)外部訪問,同時(shí)通過不同主機(jī)端口區(qū)分多個(gè)同類型容器,避免端口沖突。

4. 環(huán)境隔離(Docker 的核心優(yōu)勢)

  • 每個(gè)容器都有獨(dú)立的:
    • 文件系統(tǒng):容器里的文件不會(huì)影響主機(jī)和其他容器
    • 網(wǎng)絡(luò)棧:默認(rèn)使用橋接網(wǎng)絡(luò),每個(gè)容器有獨(dú)立的 IP,互相隔離
    • 進(jìn)程空間:容器里的進(jìn)程是主機(jī)進(jìn)程的子進(jìn)程,互相不干擾
  • 作用:提升應(yīng)用部署的安全性,比如你在容器里裝的軟件,不會(huì)污染主機(jī)環(huán)境;Nginx 容器崩潰了,不會(huì)影響 MySQL 容器。
  • 我了解 Docker 的環(huán)境隔離機(jī)制,容器之間相互隔離,互不影響,提升了應(yīng)用部署的安全性和穩(wěn)定性,也方便了多版本、多服務(wù)的并行部署。

三、快速部署 MySQL、Redis、Nginx 等中間件

1. Nginx 部署(Web 服務(wù)器)

# 拉取鏡像
docker pull nginx:alpine

# 啟動(dòng)容器,端口映射 8080:80
docker run -d -p 8080:80 --name my-nginx nginx:alpine
  • 驗(yàn)證:主機(jī)瀏覽器訪問 http://虛擬機(jī)IP:8080,能看到 Nginx 歡迎頁
  • 我能通過 Docker 快速部署 Nginx 服務(wù),配置端口映射,實(shí)現(xiàn)靜態(tài)資源的訪問,也能通過掛載本地配置文件修改 Nginx 配置。

2. MySQL 部署(數(shù)據(jù)庫)

# 拉取鏡像
docker pull mysql:8.0
# 啟動(dòng)容器,設(shè)置 root 密碼,端口映射 3306:3306
docker run -d -p 3306:3306 --name my-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

驗(yàn)證:用主機(jī)的數(shù)據(jù)庫工具(Navicat)連接 虛擬機(jī)IP:3306,用戶 root,密碼 123456

我能通過 Docker 快速部署 MySQL 服務(wù),設(shè)置 root 密碼,配置端口映射,實(shí)現(xiàn)外部客戶端連接,也了解數(shù)據(jù)卷掛載,將數(shù)據(jù)持久化到主機(jī),避免容器刪除后數(shù)據(jù)丟失。

3. Redis 部署(緩存)

# 拉取鏡像
docker pull redis:alpine
# 啟動(dòng)容器,端口映射 6379:6379
docker run -d -p 6379:6379 --name my-redis redis:alpine
  • 驗(yàn)證:用 Redis 客戶端連接 虛擬機(jī)IP:6379,能正常讀寫數(shù)據(jù)
  • 我能通過 Docker 快速部署 Redis 緩存服務(wù),配置端口映射,實(shí)現(xiàn)外部客戶端連接,也了解 Redis 持久化配置。

四、容器生命周期管理

階段命令格式作用
創(chuàng)建啟動(dòng)docker rundocker run [參數(shù)] 鏡像名創(chuàng)建并啟動(dòng)容器
查看狀態(tài)docker psdocker ps查看正在運(yùn)行的容器
docker ps -adocker ps -a查看所有容器(包括已停止的)
運(yùn)行中操作docker execdocker exec -it 容器名 /bin/bash進(jìn)入運(yùn)行中的容器,調(diào)試命令
docker logsdocker logs 容器名查看容器日志
停止重啟docker stopdocker stop 容器名優(yōu)雅停止容器
docker startdocker start 容器名啟動(dòng)已停止的容器
docker restartdocker restart 容器名重啟容器
刪除清理docker rmdocker rm 容器名刪除已停止的容器
docker rmidocker rmi 鏡像名刪除無用鏡像

我熟練掌握 Docker 容器的生命周期管理,能通過命令實(shí)現(xiàn)容器的創(chuàng)建、啟動(dòng)、停止、重啟、刪除,也能通過 docker exec 進(jìn)入容器調(diào)試,查看日志排查問題”。

五、將項(xiàng)目打包鏡像并發(fā)布運(yùn)

  1. 準(zhǔn)備項(xiàng)目文件:你的網(wǎng)頁代碼 index.html
  2. 編寫 Dockerfile:定義鏡像的構(gòu)建規(guī)則
  3. 構(gòu)建鏡像:docker build -t my-project:v1 .
  4. 運(yùn)行容器:docker run -d -p 8080:80 my-project:v1
  5. 發(fā)布運(yùn)行:可以把鏡像推送到私有倉庫,在其他服務(wù)器上拉取運(yùn)行,實(shí)現(xiàn)一次構(gòu)建、隨處運(yùn)行。

我了解 Docker 項(xiàng)目打包流程,能將靜態(tài)項(xiàng)目通過 Dockerfile 構(gòu)建成鏡像,實(shí)現(xiàn)應(yīng)用的容器化部署,解決了開發(fā)環(huán)境和生產(chǎn)環(huán)境不一致的問題,也方便了項(xiàng)目的持續(xù)集成與交付”。

六、高頻問題

Docker 鏡像和容器的區(qū)別?

  • 鏡像:只讀模板,用來創(chuàng)建容器,多個(gè)容器可以共享同一個(gè)鏡像
  • 容器:鏡像運(yùn)行起來的實(shí)例,可寫,每個(gè)容器相互隔離

Docker 容器和虛擬機(jī)的區(qū)別?

  • 虛擬機(jī):模擬硬件,運(yùn)行完整操作系統(tǒng),占用資源多、啟動(dòng)慢
  • Docker 容器:共享主機(jī)內(nèi)核,只打包應(yīng)用和依賴,輕量、秒級啟動(dòng),隔離性稍弱但足夠滿足業(yè)務(wù)需求

Docker 端口映射的原理?

Docker 會(huì)在主機(jī)上監(jiān)聽指定端口,把請求轉(zhuǎn)發(fā)到容器的對應(yīng)端口,外部通過主機(jī)端口訪問容器服務(wù)

到此這篇關(guān)于Ubuntu系統(tǒng)下Docker鏡像構(gòu)建與容器管理的完整指南的文章就介紹到這了,更多相關(guān)Docker鏡像構(gòu)建與容器管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker加載鏡像時(shí)報(bào)錯(cuò)no space left on device的徹底解決方案

    Docker加載鏡像時(shí)報(bào)錯(cuò)no space left on device的徹底解

    本文詳細(xì)記錄了在部署FastDDS鏡像時(shí)遇到磁盤空間不足的問題,并介紹了從排查到徹底解決的完整過程,通過分析根分區(qū)空間占用情況,將Docker數(shù)據(jù)根目錄遷移到大分區(qū),并修改daemon.json文件中的data-root配置,最終成功解決了問題,需要的朋友可以參考下
    2025-11-11
  • docker安裝portainer方法詳細(xì)步驟

    docker安裝portainer方法詳細(xì)步驟

    portainer是一款容器管理可視化界面,不想在虛擬中使用命令管理容器的小伙伴,可以選擇安裝portainer對容器進(jìn)行管理,查看日志、啟動(dòng)、停止容器等非常方便,這篇文章主要介紹了docker安裝portainer方法詳細(xì)步驟,需要的朋友可以參考下
    2022-10-10
  • Docker 教程之私有倉庫詳解

    Docker 教程之私有倉庫詳解

    這篇文章主要介紹了Docker 教程之私有倉庫詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別

    Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別

    本文主要介紹了Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • docker添加網(wǎng)橋并設(shè)置ip地址范圍操作

    docker添加網(wǎng)橋并設(shè)置ip地址范圍操作

    這篇文章主要介紹了docker添加網(wǎng)橋并設(shè)置ip地址范圍操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟

    docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟

    DNMP(Docker + Nginx + MySQL + PHP7/5 + Redis)是一款全功能的LNMP一鍵安裝程序,本文就來介紹一下docker搭建lnmp環(huán)境的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Docker安裝Nginx問題及錯(cuò)誤分析

    Docker安裝Nginx問題及錯(cuò)誤分析

    這篇文章主要介紹了Docker安裝Nginx的問題及錯(cuò)誤分析正確的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Docker 特性與原理詳細(xì)介紹與解析

    Docker 特性與原理詳細(xì)介紹與解析

    這篇文章主要介紹了Docker 特性與原理的相關(guān)資料,大家在了解基本命令和基本知識(shí)后,來看下原理性的通信,需要的朋友可以參考下
    2016-10-10
  • docker鏡像封裝方便打包上傳一鍵部署

    docker鏡像封裝方便打包上傳一鍵部署

    這篇文章主要為大家介紹了docker鏡像封裝方便打包上傳一鍵部署,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 通過Docker運(yùn)行AnythingLLM的方法

    通過Docker運(yùn)行AnythingLLM的方法

    這篇文章主要介紹了通過Docker運(yùn)行AnythingLLM的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12

最新評論

溧水县| 理塘县| 泌阳县| 锡林郭勒盟| 大理市| 偏关县| 莱芜市| 桓台县| 花莲县| 浦江县| 武陟县| 宽城| 中西区| 富阳市| 松潘县| 湟源县| 赤城县| 台山市| 灵川县| 察雅县| 永平县| 依安县| 阿城市| 类乌齐县| 肇州县| 绥江县| 榆林市| 建水县| 凤台县| 怀安县| 武宣县| 宁乡县| 公主岭市| 洪雅县| 社旗县| 闸北区| 崇左市| 开鲁县| 加查县| 黄浦区| 滕州市|