Docker容器基礎

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 一、Docker概述
    • 1、docker是什么
    • 2、Docker的設計宗旨
    • 3、容器在內核中支持2種重要技術:
  • 三、Docker的核心概念
  • 四、Docker相關命令
    • 1.安裝依賴包
    • 2.設置阿里云鏡像源
    • 3.安裝Docker-CE
  • 五、Docker鏡像的操作
    • 1.搜索鏡像
    • 2.獲取鏡像
    • 3.鏡像加速下載
    • 4.查看鏡像信息
    • 5.添加新標簽(打標簽)
    • 6.刪除鏡像
    • 7.將鏡像存儲到本機上,命名為nginx_latest
    • 8.載入鏡像
    • 9.上傳鏡像
  • 六、容器操作
    • ?1.容器創建?
    • 2.查看容器運行狀態?
    • 3.啟動、停止、重啟容器
    • 4.運行容器
    • ??5.進入、退出容器
    • ??6.容器導出、導入
    • 7.刪除容器
  • 總結


一、Docker概述

在這里插入圖片描述

1、docker是什么

??Docker 是在Linux容器例運行應用的開源工具,是一種輕量級的虛擬機。

Docker是一個開源的應用容器引擎,基于go語言開發并遵循了apache2.0協議開源。Docker是在Linux容器里運行應用的開源工具,是一種輕量級的“虛擬機"。

Docker 的容器技術可以在一臺主機上輕松為任何應用創建一個輕量級的、可移植的、自給自足的容器。

Docker的Logo設計為藍色鯨魚,拖著許多集裝箱。鯨魚可看作為宿主機,集裝箱可理解為相互隔離的容器,每個集裝箱中都包含自己的應用程序。

2、Docker的設計宗旨

??Build,ship and Run Any App , Anywhere??

??即通過對應用組件的封裝、發布、部署、運行等生命周期的管理,達到應用組件級別的"???一次封裝,到處運行???"的目的。這里的組件,既可以是一個應用,也可以是一套服務,甚至是一個完整的操作系統。??

??容器化越來越受歡迎,因為容器是:??

??靈活:即使是最復雜的應用也可以集裝箱化。??
輕量級:容器利用并共享主機內核。??
可互換:可以即時部署更新和升級。??
便攜式:可以在本地構建,部署到云,并在任何地方運行。??
可擴展:可以增加并自動分發容器副本。??
可維疊:可以垂直和即時堆疊服務。

3、容器在內核中支持2種重要技術:

docker本質就是宿主機的一個進程,docker是通過namespace實現資源隔離,通過cgroup實現資源限制,通過寫時復制技術(copy-on-write)實現了高效的文件操作(類似虛擬機的磁盤比如分配500g并不是實際占用物理磁盤500g)。

mount文件系統,掛載點——>一個文件系統內,不能重復掛載一個指定目錄,列如:/mnt
user操作進程的用戶和用戶組
pid進程編號
uts主機名和主機域
ipc信號量、消息隊列、共享存儲(理解,不同的應用調用內存資源的時候應該使用不同的內存空間)
net網絡設備、網絡協議棧、端口等

三、Docker的核心概念

在這里插入圖片描述
Docker客戶端向Docker服務器發出請求,使用遠程API來管理和創建Docker容器:

鏡像(Image):鏡像是Docker中的一個模板。通過 Docker鏡像 來創建 Docker容器,一個鏡像可以創建出多個容器。 鏡像是由一系列指令一步一步構建出來。

容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停等。

倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。

四、Docker相關命令

1.安裝依賴包

yum install -y yum-utils device-mapper-persistent-data lvm2#yum-utils提供了yum-config-manager
#device mapper存儲驅動程序需要device-mapper-persistent-data和lvm2
#Device Mapper 是Linux內核中支持邏輯卷管理的通用設備映射機制,它為實現用于存儲資源管理的塊設備驅動提供了一個高度模塊化的內核架構。

在這里插入圖片描述

2.設置阿里云鏡像源

代碼如下(示例):

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在這里插入圖片描述

3.安裝Docker-CE

#安裝 Docker-CE并設置為開機自動啟動
yum install -y docker-ce docker-ce-cli containerd.iosystemctl start docker.service
systemctl enable docker.service  
--------------------------------------------------------------------------------------------
安裝好的Docker系統有兩個程序,Docker服務端和Docker客戶端。其中Docker服務端是一個服務進程,負責管理所有容器。 Docker客戶端則扮演著Docker服務端的遠程控制器,可以用來控制Docker的服務端進程。大部分情況下Docker服務端和客戶端運行在一臺機器上。
--------------------------------------------------------------------------------------------

在這里插入圖片描述
在這里插入圖片描述

docker version  查看docker版本信息

在這里插入圖片描述
在這里插入圖片描述

五、Docker鏡像的操作

1.搜索鏡像

docker search 服務名
例如:
docker search nginx

在這里插入圖片描述

2.獲取鏡像

格式:docker pull 倉庫名稱[:標簽]
#如果下載鏡像時不指定標簽,則默認會下載倉庫中最新版本的鏡像,即選擇標簽為 latest 標簽。
docker pull nginx

在這里插入圖片描述

3.鏡像加速下載

瀏覽器訪問https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 獲取鏡像加速器配置mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://1azni81n.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.查看鏡像信息

docker images
docker inspect 鏡像的ID
例如
docker images
docker inspect af62dd757b58鏡像下教后存放在/var/ lib/ docker 。
Docker相關的本地資源存放在/var/lib/docker/目錄下,其中 containers日錄存放容器信息,image目錄存放鏡像信息,overlay2目錄下存放具體的鏡像底層文件。
#查看下載的鏡像文件信息
cat /var/lib/docker/image/overlay2/repositories.json

在這里插入圖片描述在這里插入圖片描述

5.添加新標簽(打標簽)

docker tag 倉庫名:原鏡像名 倉庫名:新鏡像名
例如:
docker tag nginx:latest nginx:test
docker images
docker images | grep test

在這里插入圖片描述

6.刪除鏡像

??指定鏡像ID刪除的時候,要求該鏡像不能有標簽

#=====刪除鏡像
格式:
docker rmi 倉庫名稱:標簽		#當一個鏡像有多個標簽時,只是刪除其中指定的標簽
或者
docker rmi 鏡像ID號			#會徹底刪除該鏡像注意:如果該鏡像已經被容器使用,正確的做法是先刪除依賴該鏡像的所有容器,再去刪除鏡像。docker rmi nginx:web

在這里插入圖片描述
在這里插入圖片描述

7.將鏡像存儲到本機上,命名為nginx_latest

docker save -o 存放鏡像的位置 倉庫名:鏡像名
例如:
docker save -o /opt/nginx_latest nginx:latest#存出鏡像====:將鏡像保存成為本地文件
格式:docker save -o 存儲文件名 存儲的鏡像
docker save -o nginx nginx:latest			#存出鏡像命名為nginx存在當前目錄下
ls -lh

在這里插入圖片描述
在這里插入圖片描述

8.載入鏡像

#載入鏡像====:將鏡像文件導入到鏡像庫中
格式:
docker load < 存出的文件
或者
docker load -i 存出的文件docker load < nginx

在這里插入圖片描述
在這里插入圖片描述

9.上傳鏡像

將本地的鏡像上傳到公有的鏡像倉庫,要先登陸到鏡像倉庫

??上傳鏡像前要修改標簽,標簽前面要加上Docker官網的賬號名??

??標簽格式: Docker官網的賬號名/倉庫名:鏡像名??

不過一般不會上傳到公有倉庫中,公司內部都使用私有倉庫

docker push [OPTIONS] NAME[:TAG]例如:按照下面的流程就可以上傳到公有云,有興趣的可以上傳
注冊網址 :https://hub.docker.com/
#改標簽
docker tag 倉庫名:鏡像名 用戶名/倉庫名:鏡像名
#登錄
docker login
Username:   #用戶名
Password:   #密碼#上傳
docker push 用戶名/倉庫名:鏡像名默認上傳到 docker Hub 官方公共倉庫,需要注冊使用公共倉庫的賬號。https://hub.docker.com
可以使用 docker login 命令來輸入用戶名、密碼和郵箱來完成注冊和登錄。
在上傳鏡像之前,還需要先對本地鏡像添加新的標簽,然后再使用 docker push 命令進行上傳。docker tag nginx:latest soscscs/nginx:web		#添加新的標簽時必須在前面加上自己的dockerhub的username
docker login								#登錄公共倉庫
Username:soscscs
password:abc123456
docker push soscscs/nginx:web					#上傳鏡像

六、容器操作

?1.容器創建?

容器創建:就是將鏡像加載到容器的過程。??

??新創建的容器???默認處于停止狀態???,不運行任何程序,需要在其中發起一個進程來啟動容器

格式:docker create [選項] 鏡像
常用選項:
-i:讓容器開啟標準輸入
-t:讓 Docker 分配一個偽終端 tty
-it :合起來實現和容器交互的作用,運行一個交互式會話 shell docker create -it nginx:latest /bin/bash

在這里插入圖片描述

2.查看容器運行狀態?

容器的STATUS狀態?
???up是正在運行的??
Exited (0)是正常停止的容器??
Exited (0)異常停止的容器docker ps -a			#-a 選項可以顯示所有的容器
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS    PORTS     NAMES
8b0a7be0ff58   nginx:latest   "/docker-entrypoint.…"   57 seconds ago   Created             inspiring_swanson容器的ID號	   加載的鏡像     運行的程序               創建時間       當前的狀態  端口映射  名稱

在這里插入圖片描述

3.啟動、停止、重啟容器

docker start 容器ID:啟動一個或多個已經被停止的容器
docker stop 容器ID:停止一個運行中的容器
docker restart 容器ID:重啟容器
例:
docker start 875e301d22b5
docker ps -a
docker stop 875e301d22b5
docker ps -a
docker restart 875e301d22b5

在這里插入圖片描述

4.運行容器

run和start的作用有些類似,準確來說run相當于create+start??
??一般第一次可以使用run,后面維護還是使用start/stop/restart

docker run [選項] 鏡像 [命令] [變量]
-d: 后臺運行容器,并返回容器ID;
-i: 以交互模式運行容器,通常與 -t 同時使用
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
-c 命令表示后面的參數將會作為字符串讀入作為執行的命令
-v: 綁定一個卷
-P: 隨機端口映射,容器內部端口隨機映射到主機的端口
-p: 指定端口映射,格式為:主機(宿主)端口:容器端口
--name="名稱": 為容器指定一個名稱
--link name:alias 添加鏈接到另一個容器,格式“--link容器名:別名”
可以直接執行 docker run 命令, 等同于先執行 docker create 命令,再執行 docker start 命令。
注意:容器是一個與其中運行的 shell 命令共存亡的終端,命令運行容器運行, 命令結束容器退出。docker 容器默認會把容器內部第一個進程,也就是 pid=1 的程序作為docker容器是否正在運行的依據,如果docker容器中 pid = 1 的進程掛了,那么docker容器便會直接退出,也就是說Docker容器中必須有一個前臺進程,否則認為容器已經掛掉。

當利用 docker run 來創建容器時, Docker 在后臺的標準運行過程是:
(1)檢查本地是否存在指定的鏡像。當鏡像不存在時,會從公有倉庫下載;
(2)利用鏡像創建并啟動一個容器;
(3)分配一個文件系統給容器,在只讀的鏡像層外面掛載一層可讀寫層;
(4)從宿主主機配置的網橋接口中橋接一個虛擬機接口到容器中;
(5)分配一個地址池中的 IP 地址給容器;
(6)執行用戶指定的應用程序,執行完畢后容器被終止運行。

#在后臺持續運行 docker run 創建的容器
需要在 docker run 命令之后添加 -d 選項讓 Docker 容器以守護形式在后臺運行。并且容器所運行的程序不能結束。docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"docker ps -a					#可以看出容器始終處于 UP,運行狀態
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS         PORTS     NAMES
2592d3fad0fb   centos:7   "/usr/bin/bash -c 'w…"   2 seconds ago    Up 2 seconds             peaceful_chateletdocker run -itd --name test1 centos:7 /bin/bash   #創建容器并持續運行容器#=======終止容器運行
格式:docker stop 容器的ID/名稱
docker stop 2592d3fad0fbdocker ps -a

??5.進入、退出容器

??進入的容器狀態一定要是運行狀態

需要進入容器進行命令操作時,可以使用 docker exec 命令進入運行著的容器。格式:docker exec -it 容器ID/名稱 /bin/bash
-i 選項表示讓容器的輸入保持打開;
-t 選項表示讓 Docker 分配一個偽終端。docker start 2592d3fad0fb					#進入容器前,確保容器正在運行
docker exec -it 2592d3fad0fb /bin/bash
ls
exit				#退出容器后,容器仍在運行
docker ps -adocker run -it centos:7 bash      #不加 -d 選項會創建容器后直接進入容器,但是退出容器,容器也會停止

??6.容器導出、導入

用戶可以將任何一個 Docker 容器從一臺機器遷移到另一臺機器。在遷移過程中,可以使用docker export 命令將已經創建好的容器導出為文件,無論這個容器是處于運行狀態還是停止狀態均可導出。可將導出文件傳輸到其他機器,通過相應的導入命令實現容器的遷移。#導出格式:docker export 容器ID/名稱 > 文件名
docker export 2592d3fad0fb > centos7.tar#導入格式:cat 文件名 | docker import – 鏡像名稱:標簽
cat centos7.tar | docker import - centos7:test			#導入后會生成鏡像,但不會創建容器#容器導出
docker export 容器ID > 備份文件名#容器導入(會生成鏡像,而不會創建容器)
cat 備份文件名 | docker import - 倉庫名:鏡像名例如:
docker export a4b09cb9c4d8 > nginx_up
docker export 3a198d9be5e2 > nginx_exitedcat nginx_up | docker import - nginx:web

7.刪除容器

格式:docker rm [-f] 容器ID/名稱
docker stop 2592d3fad0fb
docker rm 2592d3fad0fb				#刪除已經終止狀態的容器docker rm -f 2592d3fad0fb			#強制刪除正在運行的容器docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash			#批量停止容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker stopdocker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash				#批量刪除所有容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker rmdocker images | awk 'NR>=2{print "docker rmi "$3}' | bash			#批量刪除鏡像
docker images | grep none | awk '{print $3}' | xargs docker rmi		#刪除none鏡像docker rm $(docker ps -a -q)		#批量清理后臺停止的容器docker rm 容器ID
例如:
docker rm a4b09cb9c4d8
//批量刪除容器
docker ps -a | awk '{print "docker rm "$1}' | bash
//強刪
docker rm 3a198d9be5e2 -f

總結

提示:這里對文章進行總結:
例如:以上就是今天要講的內容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數據的函數和方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40108.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40108.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40108.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無線測溫產品在半導體制造項目的應用

摘 要&#xff1a;半導體被譽為“制造業的大腦”&#xff0c;在關系國家安全和國民經濟命脈的主要行業和關鍵領域占據支配地位&#xff0c;是國民經濟的重要支柱。 隨著數字技術的發展和數字經濟在國民經濟中所占比重越來越高&#xff0c;半導體產業的重要性還會進一步提升。安…

C++QT教程3——手冊4.11.1自帶教程(筆記)——創建一個QT快速應用

文章目錄 創建一個QT快速應用創建項目創建主視圖添加應用邏輯為視圖添加動畫素材文件 參考文章 創建一個QT快速應用 本教程使用內置的QML類型&#xff0c;介紹了Qt Quick的基本概念。有關可以選擇的用戶界面選項的更多信息&#xff0c;請參閱用戶界面。 本教程描述了如何使用…

部署mysql到win10電腦上

中間出現了很多問題&#xff0c; 記錄一下 我這邊是去官網下載的 &#xff0c;鏈接&#xff1a;https://dev.mysql.com/downloads/mysql/ 我這邊選了不是最新版本的MySQL&#xff0c;因為第一次安裝8.1.0版本的&#xff0c;死活運行不起來&#xff0c;直接卸載安重裝了&#x…

常用的分布式計算引擎

記錄一下&#xff0c;作為備忘。 常用的分布式計算引擎 多表關聯的問題&#xff0c;由于NoSQL數據庫主要用于海量存儲和單表查詢&#xff0c;一般都不支持join&#xff0c;需借助更上層的計算框架來實現多表關聯&#xff0c;比如: 計算框架支持數據源執行效率Hive本地文件、…

神經網絡基礎-神經網絡補充概念-35-為什么正則化可以減少過擬合

概念 正則化可以減少過擬合的原因在于它通過限制模型的復雜性來約束參數的取值范圍&#xff0c;從而提高了模型的泛化能力。過擬合是指模型在訓練集上表現很好&#xff0c;但在未見過的數據上表現不佳&#xff0c;這通常是因為模型過于復雜&#xff0c;過多地擬合了訓練數據中…

自己動手寫數據庫系統:實現一個小型SQL解釋器(中)

我們接上節內容繼續完成SQL解釋器的代碼解析工作。下面我們實現對update語句的解析&#xff0c;其語法如下&#xff1a; UpdateCmd -> INSERT | DELETE | MODIFY | CREATE Create -> CreateTable | CreateView | CreateIndex Insert -> INSERT INTO ID LEFT_PARAS Fie…

后端項目打包上傳服務器記錄

后端項目打包上傳服務器記錄 文章目錄 后端項目打包上傳服務器記錄1、項目打包2、jar包上傳服務器 本文記錄打包一個后端項目&#xff0c;上傳公司服務器的過程。 1、項目打包 通過IDEA的插件進行打包&#xff1a; 打成一個jar包&#xff0c;jar包的位置在控制臺可以看到。 2、…

ssm蜀都天香酒樓網站設計與實現

ssm蜀都天香酒樓的網站設計與實現028 開發工具&#xff1a;idea 數據庫mysql5.7 數據庫鏈接工具&#xff1a;navcat,小海豚等 技術&#xff1a;ssm 摘要 近年來&#xff0c;信息化管理行業的不斷興起&#xff0c;使得人們的日常生活越來越離不開計算機和互聯網技術。首…

機器學習基礎(六)

貝葉斯分析 介紹 “貝葉斯”是指托馬斯貝葉斯(1702–1761),他證明了一個特例,也就是現在的貝葉斯定理的特例。 貝葉斯定理(英語:Bayes theorem)是概率論中的一個定理,描述在已知一些條件下,某事件的發生概率。比如,如果已知某種健康問題與壽命有關,使用貝葉斯定理則…

selenium語法進階+常用API

目錄 瀏覽器操作 瀏覽器回退&#xff0c;前進 與刷新 瀏覽器窗口設置大小 瀏覽器設置寬高 瀏覽器窗口最大化 瀏覽器控制滾動條 信息打印 打印頁面的標題和當前頁面的URL 定位一組元素 鼠標和鍵盤事件 鍵盤 鼠標 下拉框操作 通過索引定位&#xff08;se…

【BASH】回顧與知識點梳理(三十二)

【BASH】回顧與知識點梳理 三十二 三十二. SELinux 初探32.1 什么是 SELinux當初設計的目標&#xff1a;避免資源的誤用傳統的文件權限與賬號關系&#xff1a;自主式訪問控制, DAC以政策規則訂定特定進程讀取特定文件&#xff1a;委任式訪問控制, MAC 32.2 SELinux 的運作模式安…

安科瑞變電所運維平臺在電力系統中應用分析

摘要&#xff1a;現代居民生活、工作對電力資源的需求量相對較多&#xff0c;給我國的電力產業帶來了良好的發展機遇與挑戰。探索電力系統基本構成&#xff0c; 將變電運維安全管理以及相應的設備維護工作系統性開展&#xff0c;能夠根據項目實踐工作要求&#xff0c;將滿足要求…

C語言暑假刷題沖刺篇——day2

目錄 一、選擇題 二、編程題 &#x1f388;個人主頁&#xff1a;庫庫的里昂 &#x1f390;CSDN新晉作者 &#x1f389;歡迎 &#x1f44d;點贊?評論?收藏?收錄專欄&#xff1a;C語言每日一練 ?其他專欄&#xff1a;代碼小游戲C語言初階&#x1f91d;希望作者的文章能對你…

最小生成樹,prim算法

Prim算法和Kruskal算法都是用于解決最小生成樹問題的經典算法&#xff0c;它們在不同情況下有不同的適用性和特點。 Prim算法&#xff1a; Prim算法是一種貪心算法&#xff0c;用于構建一個無向圖的最小生成樹。算法從一個初始節點開始&#xff0c;逐步添加與當前樹連接且具有…

【自動電壓調節器】無功功率控制的終端電壓控制研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;歡迎來到本博客????&#x1f4a5;&#x1f4a5; &#x1f3c6;博主優勢&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客內容盡量做到思維縝密&#xff0c;邏輯清晰&#xff0c;為了方便讀者。 ??座右銘&a…

小白的Node.js學習筆記大全---不定期更新

let、const、var的區別 &#xff08;1&#xff09;塊級作用域&#xff1a; 塊作用域由 { }包括&#xff0c;let和const具有塊級作用域&#xff0c;var不存在塊級作用域。塊級作用域解決了ES5中的兩個問題&#xff1a; 內層變量可能覆蓋外層變量 用來計數的循環變量泄露為全局…

【加強管理】《別輸在不懂管理上》學習記錄,黃金41條

成功有時是很難效法的&#xff0c;但失敗是可以避免的&#xff0c;從失敗中吸取經驗和教訓才是管理者的必修課。釋義&#xff1a; 圖形含義&#x1f332;一級重要&#x1f340;二級重要&#x1f33f;三級主要&#x1f341;存在問題&#x1f33c;解決辦法 1 不能從頭管到腳 不…

【討論】視頻監控集中存儲方案如何做?

視頻監控集中存儲是指將多個視頻監控攝像頭所捕捉到的視頻信號集中存儲于一個中央設備&#xff0c;這個中央設備可以是服務器、網絡存儲設備或其他專用設備。通過集中存儲&#xff0c;可以避免因為存儲設備分散而導致的管理不便和難以有效地管理和檢索視頻數據&#xff0c;同時…

RTT(RT-Thread)ADC設備(RTT保姆級介紹)

目錄 ADC設備 前言 ADC相關參數說明 訪問ADC設備 配置ADC設備 ADC實例 硬件設計 軟件設計 ADC設備 前言 ADC(Analog-to-Digital Converter) 指模數轉換器。是指將連續變化的模擬信號轉換為離散的數字信號的器件。 對于ADC的詳細介紹和在STM32中的裸機應用可參考以下…

pandas數據分析38——數據框表格拓展以及縮回對齊

案例背景 需求是這個樣的&#xff1a; 把這個表格進行拓展。 代碼實現&#xff1a; df pd.DataFrame(np.array([[1, 2, 3,4], [a,b, c,d], [小明,小紅, 小馬,小天]])) df 方法一&#xff1a;自定義函數&#xff1a; def expand_dataframe(df):m, n df.shapenew_df pd.Dat…