Docker詳細使用

Docker詳細使用

文章目錄

  • Docker詳細使用
  • 使用場景
    • docker安裝
    • 常用命令
      • 幫助啟動類命令
      • 鏡像命令
      • 網絡命令
      • 容器命令
      • compose(服務編排)
  • 功能列表
    • 存儲(掛載本地)
      • 介紹
      • 使用
        • ?錄掛載
        • 卷映射
    • 網絡
      • 介紹
      • 使用
    • Dockerfile
    • Compose
      • 介紹
      • 使用

使用場景

以下場景使用的命令如果不知參數什么意思可以在下面【功能列表】中查詢

docker安裝

https://docs.docker.com/engine/install/

常用命令

幫助啟動類命令

說明命令
啟動dockersystemctl start docker
停止dockersystemctl stop docker
重啟dockersystemctl restart docker
查看docker狀態systemctl status docker
開機啟動systemctl enable docker
查看docker概要信息docker info
查看docker總體幫助文檔docker --help
查看docker命令幫助文檔docker 具體命令 --help

鏡像命令

說明命令
列出本地主機上的鏡像docker images
搜索鏡像docker search {鏡像名字}
下載鏡像docker pull {鏡像名字:版本}
刪除鏡像docker rmi -f {鏡像ID}

網絡命令

說明命令
查看網絡docker network ls
查看網絡源數據docker network inspect {網絡名字}
刪除網絡docker network rm {網絡名字}
創建網絡(默認創建的是bridge模式)docker network create {網絡名字}

容器命令

說明命令
列出當前所有正在運行的容器docker ps
列出當前所有的容器(包含歷史)docker ps -a
新建+啟動容器docker run(詳細命令看下面)
啟動已停止運行的容器docker start {容器ID或者容器名}
停止容器docker stop {容器ID或者容器名}
強制停止容器docker kill {容器ID或容器名}
重啟容器docker restart {容器ID或者容器名}
刪除已停止的容器docker rm {容器ID}
查看容器日志docker logs {容器ID}
查看容器內運行的進程docker top {容器ID}
查看容器內部細節docker inspect {容器ID}
進入正在運行的容器并以命令行交互docker exec -it {容器ID} /bin/b}ash
從容器內拷貝文件到主機上docker cp {容器ID:容器內路徑} {主機路徑}
從主機上拷貝文件到容器內docker cp {主機路徑} {容器ID:容器內路徑}

新建+啟動容器

# -i:以交互模式運行容器,通常與 -t 同時使用;
# -t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
# -d:后臺執行
# -p:指定端口映射
# --network:網絡名,必須是已存在的,如果不存在需要先創建網絡(詳細可參考下面網絡章節)
# -v 卷映射,將容器數據映射到本地(詳細可參考下面存儲(掛載本地)章節)
# --name:容器名
docker run -it -d \
-p {對外端口:程序端口} \
-v {本地目錄或卷目錄:容器程序目錄} \
--network {網絡名} \
--name={容器新名字} \
{容器名}# 例子
docker run -it -d \
-p 9789:80 \
-v /sensorsdata/main/packages/test/nocobase:/app/nocobase  \
--network my-bridge-network \
--name=ubp_dev_c140_new_name \
ubp_dev_140

compose(服務編排)

以下命令需要在【docker-compose.yml】文件目錄下執行

說明命令
啟動所有docker-compose服務并后臺運行docker compose up -d
停止并刪除容器、網絡、卷、鏡像docker compose down
進入容器實例內部docker compose exec {docker-compose.yml文件中寫的服務id} /bin/bash
展示當前docker-compose編排過的運行的所有容器docker compose ps
展示當前docker-compose編排過的容器進程docker compose top
查看容器輸出日志docker compose logs yml里面的服務id
檢查配置docker compose config
檢查配置,有問題才有輸出docker compose config -q
重啟服務docker compose restart
啟動服務docker compose start
停止服務docker compose stop

功能列表

存儲(掛載本地)

映射,容器內的數據備份+持久化到本地主機目錄

介紹

  • 分為目錄掛載卷映射
  • 相同點
    • 都是將容器里的目錄掛載到本地目錄
    • 當被掛載的本地目錄存在時使用本地目錄下的內容,如果本地目錄不存在則自動創建目錄
  • 不同點
    • 目錄掛載:本地掛載目錄不存時會自動創建,**不會**將容器的掛載目錄內容拷貝到本地
    • 卷映射:本地掛載目錄不存時會自動創建,****將容器的掛載目錄內容拷貝到本地

使用

?錄掛載
# -v :掛載
# 	將docker容器的【/usr/share/nginx/html】目錄掛載到本地【/tmp/nghtml】目錄
-v /tmp/nghtml:/usr/share/nginx/html
卷映射
# -v :掛載
# 	將docker容器的【/etc/nginx】目錄卷映射到【ngconf】卷中
-v ngconf:/etc/nginx# 查看docker所有的卷
docker volume ls# 查看這個卷掛載的詳細信息(卷名稱、卷掛載的本地目錄)
# 	{VOLUME NAME}:卷名
docker volume inspect {VOLUME NAME}

網絡

介紹

作用

  • 容器間的互聯和通信以及端口映射
  • 容器IP變動時候可以通過服務名直接網絡通信而不受到影響

模式介紹

  • bridge模式:讓主機和容器之間可以通過網橋相互通信
    • 使用–network bridge指定,默認使用docker0
  • host模式:直接使用宿主機的 IP 地址與外界進行通信,不再需要額外進行NAT 轉換
    • 使用–network host指定
  • none模式:不為Docker容器進行任何網絡配置
    • 使用–network none指定
  • container模式:新創建的容器不會創建自己的網卡,配置自己的IP
    • 使用–network container:NAME或者容器ID指定

使用

  • bridge模式:使用–network bridge
  • host模式:使用–network host
  • none模式:使用–network none
  • container模式:使用–network container:NAME或者容器ID

Dockerfile

Dockerfile是用來構建Docker鏡像的文本文件,是由一條條構建鏡像所需的指令和參數構成的腳本。

https://docs.docker.com/reference/dockerfile/

Compose

https://docs.docker.com/reference/compose-file/

介紹

  • 實現對Docker容器集群的快速編排
  • Compose允許用戶通過一個單獨的docker-compose.yml模板文件(YAML 格式)來定義一組相關聯的應用容器為一個項目(project)
  • 可以很容易地用一個配置文件定義一個多容器的應用,然后使用一條指令安裝這個應用的所有依賴,完成構建。Docker-Compose 解決了容器與容器之間如何管理編排的問題。

使用

步驟

  • 編寫docker-compose.yml文件
  • 在docker-compose.yml文件目錄下 啟動并運行整個應用程序,完成一鍵部署上線: docker-compose up -d

docker-compose.yml例子(mysql、redis)

services:mysql:image: mysql:8.0container_name: mysqlenvironment:MYSQL_ROOT_PASSWORD: root_passwordMYSQL_DATABASE: my_databaseMYSQL_USER: userMYSQL_PASSWORD: user_passwordTZ: Asia/Shanghaiports:- "3306:3306"volumes:- mysql_data:/var/lib/mysql- ./mysql-init:/docker-entrypoint-initdb.dnetworks:- app-networkhealthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]interval: 10stimeout: 5sretries: 5restart: unless-stoppedredis:image: redis:7.0container_name: rediscommand: redis-server --requirepass redis_passwordports:- "6379:6379"volumes:- redis_data:/datanetworks:- app-networkhealthcheck:test: ["CMD", "redis-cli", "ping"]interval: 10stimeout: 5sretries: 5restart: unless-stoppedvolumes:mysql_data:name: mysql_dataredis_data:name: redis_datanetworks:app-network:driver: bridge

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

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

相關文章

Ubuntu24.04搭建ESP8266_RTOS_SDK V3.4開發環境

【本文發布于https://blog.csdn.net/Stack_/article/details/147194686,未經允許不得轉載,轉載須注明出處】 需要有Linux使用基礎,自行準備 1、VM17 Pro (自行搜索教程安裝) 2、ubuntu-24.04-desktop-amd64 &#xff0…

微信小程序實現table樣式,自帶合并行合并列

微信小程序在代碼編寫過程好像不支持原生table的使用&#xff0c;在開發過程中偶爾又得需要拿table來展示。 1.table效果展示 1.wxml <view class"table-container"><view class"table"><view class"table-row"><view cla…

前端面試-React篇

核心概念與虛擬DOM React的虛擬DOM如何工作&#xff1f;Diff算法優化策略是什么&#xff1f;JSX的本質是什么&#xff1f;與模板引擎&#xff08;如Vue&#xff09;有何區別&#xff1f;React組件生命周期&#xff08;類組件&#xff09;的關鍵階段是什么&#xff1f;受控組件…

LFM調制信號分類與檢測識別

LFM調制信號分類與檢測識別 LFM調制信號分類識別AlexNet網絡識別InceptionV3、ResNet-18、ResNet-50網絡識別 LFM調制信號檢測識別 LFM調制信號分類識別 支持識別LFM信號、間歇采樣干擾(ISRJ)、靈巧噪聲干擾(SNJ)、掃頻干擾(SJ)、瞄準干擾(AJ)、阻塞干擾(BJ)、密集假目標干擾(…

Linux 常用命令總結

Linux 常用命令總結 Linux 命令行是系統管理和開發的核心工具&#xff0c;掌握常用命令可以極大提升效率。本文全面總結 Linux 常用命令&#xff0c;涵蓋文件操作、進程管理、網絡管理、系統監控、用戶管理、軟件安裝等多個方面&#xff0c;適合初學者和高級用戶參考。 1. 文件…

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函數分析之創建一個RPCRT4!OSF_CCALL--RPC源代碼分析

RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函數分析之創建一個RPCRT4!OSF_CCALL 第一部分&#xff1a; 1: kd> p RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION0x167: 001b:77bf6957 393dec35c877 cmp dword ptr [RPCRT4!gfRPCVerifierEnabled (77c835ec)],edi 1: kd> …

量化視角:比特幣美債黃金三角博弈的DeepSeek推演

【AI分析】近期全球金融市場呈現罕見的三重分化態勢&#xff1a;比特幣單日振幅超35%、美債收益率創年內最大單日波動、黃金價格突破3271美元/盎司&#xff0c;刷新有記錄以來的最高價。這種極端行情背后&#xff0c;折射出AI模型捕捉到的市場結構性矛盾與資金流動新邏輯。 一…

markdown導出PDF,PDF生成目錄

1、vscode中安裝markdown插件&#xff0c;將編輯的文件導出PDF。 2、安裝PDF Guru Anki軟件 百度網盤&#xff1a;通過網盤分享的文件&#xff1a;PDFGuruAnki 鏈接: https://pan.baidu.com/s/1nU6avM7NUowhEn1FNZQKkA 提取碼: aues PDF中不同的標題需要通過矩形框標注差異&a…

FastAPI與SQLAlchemy數據庫集成

title: FastAPI與SQLAlchemy數據庫集成 date: 2025/04/17 15:33:34 updated: 2025/04/17 15:33:34 author: cmdragon excerpt: FastAPI與SQLAlchemy的集成通過創建虛擬環境、安裝依賴、配置數據庫連接、定義數據模型和實現路由來完成。核心模塊包括數據庫引擎、會話工廠和聲…

OSCP - Proving Grounds - DriftingBlues6

主要知識點 路徑爆破dirtycow內核漏洞提權 具體步驟 總體來講&#xff0c;這臺靶機還是比較直接的&#xff0c;沒有那么多的陷阱,非常適合用來學習 依舊是nmap開始,只開放了80端口 Nmap scan report for 192.168.192.219 Host is up (0.42s latency). Not shown: 65534 cl…

電視盒子 刷armbian

參考 中興電視盒子中興B860AV3.2-M刷Armbian新手級教程-CSDN博客 1.刷安卓9 帶root版本 a. 下載安卓線刷包 鏈接&#xff1a;https://pan.baidu.com/s/1hz87_ld2lJea0gYjeoHQ8A?pwdd7as 提取碼&#xff1a;d7as b.拆機短接 3.安裝usbburning工具 使用方法 &#xff0c;…

Redisson分布式鎖全攻略:用法、場景與要點

目錄 1. 普通可重入鎖&#xff08;RLock&#xff09; 2. 公平鎖&#xff08;RFairLock&#xff09; 3. 讀寫鎖(RReadWriteLock) 4. 多重鎖(RedissonMultiLock) 1. 普通可重入鎖&#xff08;RLock&#xff09; import org.redisson.Redisson; import org.redisson.api.RLoc…

Node.js 中 Token 原理簡單介紹 + 示例代碼

目錄 ? 什么是 Token&#xff1f; &#x1f501; 原理簡述&#xff1a; &#x1f9e9; 示例項目&#xff1a;使用 Node.js jsonwebtoken 實現 Token 登錄驗證 &#x1f4c1; 文件結構如下&#xff1a; &#x1f539; server.js&#xff08;JavaScript&#xff09; &…

每日OJ_牛客_ruby和薯條_排序+二分/滑動窗口_C++_Java

目錄 ruby和薯條_排序二分/滑動窗口 題目解析 C代碼 Java代碼 ruby和薯條_排序二分/滑動窗口 ruby和薯條 描述&#xff1a; ruby很喜歡吃薯條。 有一天&#xff0c;她拿出了n根薯條。第i根薯條的長度為ai。 ruby認為&#xff0c;若兩根薯條的長度之差在l和r之間&#xf…

從 ComponentActivity 看 Android Activity 的演變與 Jetpack 架構融合

在 Jetpack Compose 出現后&#xff0c;開發者可能會注意到一個變化&#xff1a;項目的主 Activity 默認從過去熟悉的 AppCompatActivity 變成了 ComponentActivity。這個變化并非偶然&#xff0c;而是 Android 架構在向現代組件化演進過程中一個關鍵的轉折點。本文將圍繞 Comp…

Linux 防火墻( iptables )

目錄 一、 Linux 防火墻基礎 1. 防火墻基礎概念 &#xff08;1&#xff09;防火墻的概述與作用 &#xff08;2&#xff09;防火墻的結構與匹配流程 &#xff08;3&#xff09;防火墻的類別與各個防火墻的區別 2. iptables 的表、鏈結構 &#xff08;1&#xff09;規則表 …

大數據 - 2. Hadoop - HDFS(分布式文件系統)

前言 為什么海量數據需要分布式存儲技術&#xff1f; 文件過大時&#xff0c;單臺服務器無法承擔&#xff0c;要靠數量來解決。數量的提升帶來的是網絡傳輸、磁盤讀寫、CPU、內存等各方面的提升。 眾多的服務器一起工作&#xff0c;如何保證高效且不出錯 &#xff1f; 大數…

使用cursor進行原型圖設計

1.下載cursor 2.模式設置&#xff1a; 模型使用claude-3.7-sonnet的think模式 3.引導詞模板&#xff1a; 我想要開發一個中高考英語口語考試的模擬考試系統&#xff0c;我需要將上面的這個應用輸出成高保真的原型圖設計。請考慮以下的規范&#xff1a; 用戶體驗&#xff1…

極狐GitLab 功能標志詳解

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 功能標志 (BASIC ALL) 使用功能標志&#xff0c;您可以將應用程序的新功能小批量部署到生產環境中。您可以為部分用戶打開和…

AI與無人駕駛汽車:如何通過機器學習提升自動駕駛系統的安全性?

引言 想象一下&#xff0c;在高速公路上&#xff0c;一輛無人駕駛汽車正平穩行駛。突然&#xff0c;前方的車輛緊急剎車&#xff0c;而旁邊車道有一輛摩托車正快速接近。在這千鈞一發的瞬間&#xff0c;自動駕駛系統迅速分析路況&#xff0c;判斷最安全的避險方案&#xff0c;精…