【Docker】Ubuntu下Docker的基本使用方法與常用命令總結

【Docker】docker的基本使用方法

  • 鏡像image與容器container的關系
  • 基本命令
    • - 查看 Docker 版本
    • - 拉取鏡像
    • - 查看系統中的鏡像
    • - 刪除某個鏡像
    • - 列出當前 Docker 主機上的所有容器,包括正在運行的、暫停的、已停止的,以及未運行的容器
    • - 列出當前 Docker 主機上的正在運行的容器
    • - 進入正在運行的容器
    • - 退出容器
    • - 刪除容器
    • - 使用 docker start 命令后跟容器 ID 或名稱來啟動容器
    • - 停止正在運行的容器
    • - 啟動docker服務
    • - 停止docker服務
    • - 重啟docker服務
    • - 檢查docker服務狀態
    • - 將本地文件或環境復制到docker容器中(需要先退出容器 ctrl + d)
    • - 根據容器創建鏡像
    • - 將鏡像保存為壓縮包
    • - 加載鏡像
    • 參考文獻

鏡像image與容器container的關系

在這里插入圖片描述

  • 鏡像是模板:Docker 鏡像是一個輕量級、可執行的軟件包,包含了運行一個應用程序所需的代碼、運行時、庫、環境變量和配置文件。鏡像可以看作是容器的模板,用于創建容器的實例。
  • 鏡像可以創建多個容器:同一個 Docker 鏡像可以用于創建多個獨立的容器實例。每個容器都有自己的文件系統、網絡設置、環境變量等,彼此之間是隔離的。
  • 容器是鏡像的運行實例:當運行一個 Docker 鏡像時,Docker 會創建一個容器,這是鏡像的沙盒實例。容器是隔離的、安全的,并且是可移植的
  • 安裝了Docker的機器是宿主機,在容器內的代碼不會受到宿主機環境的影響
  • 配置好的容器可以打包成鏡像,可以快速迭代,方便二次開發

優點:

  • 輕量級和高效:Docker容器共享宿主機的操作系統內核,因此不需要像虛擬機那樣復制整個操作系統,這使得容器比虛擬機更加輕量和高效
  • 可移植性:Docker容器可以在任何支持Docker的系統上運行,無論是開發環境、測試環境還是生產環境,都能保證一致,eg.別人的環境打包好鏡像,我們拿到鏡像后不用配置環境,根據該鏡像生成容器就可以直接在容器里運行程序
  • 隔離性:每個容器都是相互隔離的,擁有自己的文件系統,并且運行在獨立的網絡環境中。這有助于防止應用之間的沖突

基本命令

- 查看 Docker 版本

sudo docker --version

- 拉取鏡像

Docker Hub 是 Docker 官方提供的公共鏡像倉庫,可在此鏈接中尋找需要的鏡像并拉取到本地,其中會提供拉取鏡像的命令

sudo docker pull [OPTIONS] 鏡像名:TAG(不輸入tag則默認拉取最新版,默認TAG是latest)

在這里插入圖片描述

- 查看系統中的鏡像

sudo docker images

- 刪除某個鏡像

sudo docker rmi 鏡像ID或鏡像名:tag

- 列出當前 Docker 主機上的所有容器,包括正在運行的、暫停的、已停止的,以及未運行的容器

sudo docker ps -a

- 列出當前 Docker 主機上的正在運行的容器

sudo docker ps
  • 根據鏡像創建一個新的容器
    -d:以 detached 模式運行容器,即在后臺運行
    -t:分配一個偽終端,通常與 -i 一起使用,使得可以與容器進行交互
    -i:保持容器的標準輸入(STDIN)打開,即使不附加到終端
    當使用 -d 參數時,容器會在后臺運行,不會阻塞當前的命令行或終端會話。如果想啟動一個交互式的會話,或者想要進入正在運行的容器,可以使用 docker exec 命令
    要實現容器一被創建就自動運行,您需要在 docker run 命令中使用 -d(detached 模式)選項。這個選項允許容器在后臺運行,即不與當前的命令行或終端會話交互
sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
eg. sudo docker run -d --name my_container(容器名) my_image(鏡像名:tag)sudo docker run --name 容器名 -idt 鏡像名:tag 

- 進入正在運行的容器

sudo docker exec -it 容器名 /bin/bash

這里的 -it 參數與 docker run 中的相同,/bin/bash 是您希望在容器內部啟動的 shell

- 退出容器

ctrl + d

- 刪除容器

sudo docker rm container_name_or_id

- 使用 docker start 命令后跟容器 ID 或名稱來啟動容器

sudo docker start CONTAINER_ID_OR_NAME

- 停止正在運行的容器

sudo docker stop container_name_or_id

- 啟動docker服務

sudo systemctl start docker

- 停止docker服務

sudo systemctl stop docker

- 重啟docker服務

sudo systemctl restart docker

- 檢查docker服務狀態

sudo systemctl status docker

- 將本地文件或環境復制到docker容器中(需要先退出容器 ctrl + d)

sudo docker cp /本地路徑 容器名:/目標路徑
eg. sudo docker cp /home/b/miniconda3/envs/yolo1.7 test:/opt/conda/envs

- 根據容器創建鏡像

repository_name:tag 是為新鏡像指定的名稱和標簽
在使用 docker commit 從容器創建鏡像之前,通常需要確保容器已經停止運行

sudo docker commit [OPTIONS] CONTAINER_ID或容器名稱 [REPOSITORY[:TAG]]
eg. sudo docker commit -a '作者' -m '提交說明' test image_test

-a 或 --author:設置鏡像的作者字段,后面跟著作者的名字或郵箱
-m 或 --message:提交時的說明信息,通常用來描述鏡像的內容或用途

- 將鏡像保存為壓縮包

sudo docker save --output my_image.tar my_image:my_tag
eg.sudo docker save -o test_tar.tar image_test

my_image:my_tag 是您要導出的鏡像的名稱和標簽。如果未指定標簽,將默認使用 latest

- 加載鏡像

sudo docker load --input my_image.tar
sudo docker load -i test_tar.tar

參考文獻

  • Docker封裝anaconda環境,生成鏡像并打包,純小白一文讀懂(二)

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

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

相關文章

【信息系統項目管理師知識點速記】溝通管理:管理溝通

管理溝通是確保項目信息流通順暢的關鍵流程,涉及到信息的收集、生成、傳播、存檔、檢索、監管及最終處理,以促進項目團隊與利益相關者的有效互動。這一過程不僅關乎信息的發布,更側重于信息的恰當格式與精準送達,同時鼓勵利益相關者的積極參與,包括信息補充、澄清和討論。…

《二十一》QT QML編程基礎

QML概述 QML(Qt Meta-Object Language)是一種聲明性語言,它被用于描述Qt框架中用戶界面的結構和行為。QML提供了一種簡潔、靈活的方式來創建動態和交互式的界面。 QML基于JavaScript語法,通過使用QML類型和屬性來定義界面的元素…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 大家繼續看 https://lilianweng.github.io/posts/2023-06-23-agent/的文檔內容 第二部分:內存 記憶的類型 記憶可以定義為用于獲取、存儲、保留以及隨后檢索信息的過程。人腦中有多…

Mac 使用:Micosoft Remote Desktop 遠程優化

Micosoft Remote Desktop遠程優化 服務器 遠程會話環境設置 WinR打開運行,輸入gpedit.msc 找到計算機配置->管理模板->Windows組件->遠程桌面服務->遠程桌面會話主機->遠程會話環境。下面這幾個打開,有效提高rdp性能。 rdp協議同時使用…

自動駕駛---Behavior Planning之EUDM

1 背景 在前面的博客中,為讀者朋友們闡述了自動駕駛Planning模塊基于MCTS行為規劃的文章《自動駕駛---Behavior Planning之MCTS》,博客中引用的論文的主要思想是以蒙特卡洛樹來實現行為規劃。今天,我們繼續探尋另一種行為規劃的策略,主角依然是香港科技大學。 熟悉的讀者大…

vim 文件內容替換 cat 合并文件

vim 文件內容替換 第一步:首先要進入末行模式(在命令模式下輸入冒號:) 第二步:根據需求替換內容 ① 只替換光標所在這一行的第一個滿足條件的結果(只能替換1次) :s/要替換的關鍵詞/替換后的關鍵詞 回…

計數排序,基數排序,桶排序

目錄 計數排序: 基數排序: 桶排序: 計數排序: 計數排序是一種非比較型整數排序算法,特別適用于一定范圍內的整數排序。它的核心思想是使用一個額外的數組(稱為計數數組)來計算每個值的出現次數,然后根據這些計數信…

C語言中錯誤處理的基本實現

引入頭文件依賴&#xff1a; 標準輸入輸出流&#xff1a;#include <stdio.h>獲取錯誤信息&#xff1a;#include <string.h>&#xff0c;strerror通過這個頭文件獲取文件流&#xff1a;#include <stdlib.h>&#xff0c;fprintf通過這個頭文件獲取錯誤編號&…

hadoop生態圈集群搭建(持續更新240512)

Hadoop生態圈 Linux1.修改ip地址2.重啟network服務3.安裝插件4.關閉防火墻5.創建用戶6.創建目錄7.修改目錄的所屬主和所屬組為lxy8.修改主機名:hadoop102 (注意名字后面不要加空格)9.修改hosts文件10.等插件都裝完后再重啟Linux11.把xshell的登錄用戶換成lxy &#xff08;注意&…

【TC3xx芯片】TC3xx芯片時鐘監控

目錄 前言 正文 1.時鐘監控概念 1.1 時鐘監控原理 1.2時鐘監控配置寄存器

Node.js 的補充適用場景

Node.js 的適用場景相當廣泛&#xff0c;以下再補充一些具體的使用場景&#xff1a; 服務器端應用開發&#xff1a; Node.js特別適合于構建高性能、高并發、低延遲的服務器端程序。它可以用來開發Web服務器、API服務器、實時通訊服務器等。Node.js的高性能和事件驅動的非阻塞I…

day09-常用API異常

1.時間日期類 1.1 Date類&#xff08;應用&#xff09; 計算機中時間原點 1970年1月1日 00:00:00 時間換算單位 1秒 1000毫秒 Date類概述 Date 代表了一個特定的時間&#xff0c;精確到毫秒 Date類構造方法 方法名說明public Date()分配一個 Date對象&#xff0c;并初始化…

【大數據】HDFS

文章目錄 [toc]HDFS 1.0NameNode維護文件系統命名空間存儲元數據解決NameNode單點問題 SecondaryNameNode機架感知數據完整性校驗校驗和數據塊檢測程序DataBlockScanner HDFS寫流程HDFS讀流程HDFS與MapReduce本地模式Block大小 HDFS 2.0NameNode HANameNode FederationHDFS Sna…

使用注解的方式進行配置RabbitMQ

引入依賴&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…

pyqt5報錯:AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘

第一種解決方法是&#xff1a;AttributeError: ‘mywindow‘ object has no attribute ‘setCentralWidget‘_attributeerror: mywindow object has no attribute-CSDN博客 第二種解決方法是&#xff08;推薦&#xff09;&#xff1a; 直接把這段代碼復制在 ui轉 py文件的后面…

什么是JVM中的程序計數器

在計算機的體系結構中&#xff1a; 程序計數器&#xff08;Program Counter&#xff09;&#xff0c;通常縮寫為 PC&#xff0c;是計算機體系結構中的一個寄存器&#xff0c;用于存儲下一條指令的地址。程序計數器是控制單元的一部分&#xff0c;它的作用是確保程序能夠按正確…

用 Python 和 AkShare 進行個股數據清洗:簡易多功能方法

標題:用 Python 和 AkShare 進行個股數據清洗:簡易多功能方法 簡介: 本文介紹了如何使用 Python 和 AkShare 庫對個股數據進行清洗和處理。個股數據經常需要進行清洗以用于分析、建模或可視化。我們將介紹一些簡單但功能強大的方法,包括數據加載、缺失值處理、重復值檢測和…

心理應用工具包 psychtoolbox 繪制小球走迷宮

psychtoolbox 是 MATLAB 中的一個工具包&#xff0c;對于科研人員設計實驗范式來說是不二之選&#xff0c;因為它可以操作計算機的底層硬件&#xff0c;精度可以達到幀的級別。 文章目錄 一、實驗目的二、psychtoolbox 的下載安裝三、Psychtoolbox 的基本使用四、完整代碼 一、…

不同數據類型的內部秘密----編程內幕(2)

Q&#xff1a; char類型是如何被當成int處理的&#xff1f; A: 我們可以看看char類型變量在何時才會被當做int處理. #include <stdio.h>int main() {char ch;ch a;printf("%c\n", ch);return 0; } 匯編代碼如下&#xff1a; hellomain:0x100000f60 <0&…

修改了環境變量~/.bashrc后 報錯 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname

問題如下&#xff1a; 修改了~/.bashrc后加入了環境變量之后報錯&#xff0c;如下所示 (base) jiedell:~/桌面$ source ~/.bashrc 命令 “dirname” 可在以下位置找到 * /bin/dirname * /usr/bin/dirname 由于 /usr/bin:/bin 不在 PATH 環境變量中&#xff0c;故無法找到該…