docker常見操作總結

来源:https://www.cnblogs.com/imlifelong/archive/2020/01/08/12165628.html
-Advertisement-
Play Games

一、原理 1、Hypervisor是一種運行在物理伺服器和操作系統之間的中間軟體層,可允許多個操作系統和應用共用一套基礎物理硬體,它能直接訪問物理設備,會給每一臺虛擬機分配記憶體、CPU、網路、磁碟等資源,也可以確保虛擬機對應的硬體資源不被其他虛擬機訪問,是所有虛擬化技術的核心。 2、虛擬機 指通過軟 ...


一、原理
  1、Hypervisor是一種運行在物理伺服器和操作系統之間的中間軟體層,可允許多個操作系統和應用共用一套基礎物理硬體,它能直接訪問物理設備,會給每一臺虛擬機分配記憶體、CPU、網路、磁碟等資源,也可以確保虛擬機對應的硬體資源不被其他虛擬機訪問,是所有虛擬化技術的核心。
  2、虛擬機 指通過軟體模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整電腦系統。虛擬機都會有自己的kernel,自己的硬體,這樣虛擬機啟動的時候需要先做開機自檢,啟動kernel,啟動用戶進程等一系列行為
  3、namespace 是一種隔離機制,一個獨立的namespace看上去擁有所有linux主機的資源(進程ID、主機名、用戶ID、網路訪問、進程間通訊和文件系統等),也擁有自己的0號進程(即系統初始化的進程)。一個namespace可以產生多個子namespace
  4、[Cgroups]:是Linux內核功能,它讓兩件事情變成可能:限制Linux進程組的資源占用(記憶體、CPU);為進程組製作 PID、UTS、IPC、網路、用戶及裝載命名空間。
  5、docker-se 商業版 docker-ce 社區版

二、常用操作
  1、更新yum
    yum -y update
  2、刪除舊版本
    yum remove docker
  3、下載安裝軟體
    yum install -y yum-utils
  4、配置官方源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  5、配置阿裡源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  6、下載docker
    yum install docker-ce
  7、啟動
    systemctl start docker
  8、查看docker版本
    docker version
  9、查看docker信息
    docker info
  10、查看本機所有image
    docker image ls

  11、下載鏡像(使用國內鏡像源)
    docker image pull hello-world
    配置加速 /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://registry.docker-cn.com"]
    }

  12、運行docker
    docker container run hello-world

  13、刪除image(如果image被容器引用,必須銷毀這個容器,才能刪除image)
    docker image rm hello-world
  14、查看運行的中的容器
    docker ps
    docker ps -a 查看已經退出的容器
    docker container ls 查看容器 -a 查看所有的
  15、停止容器(狀態變成已終止)
    docker stop 容器id[CONTAINER ID]
    docker container prune 清除所有所有未運行的容器
  16、查看容器日誌(容器的終端輸出)
    docker logs 容器id[CONTAINER ID OR NAME]

  17、刪除容器
    docker rm 容器id[CONTAINER ID]
  18、拉取ubuntu
    docker pull ubuntu:18.04
    運行 -i 互動式操作 -t 終端 --rm 容器退出後將其刪除 bash 使用bash當作交互
    docker run -it --rm ubuntu:18.04 bash
  19、運行nginx
    docker pull nginx
    啟動 --name 指定容器名稱, -d 後臺運行並列印容器id, -p 將容器埠映射到宿主機
    docker run --name nginxweb -d -p 8080:80 nginx
    訪問 127.0.0.1:8080
    交互方式進到容器
    docker exec -it nginxweb bash
    將宿主機得文件複製到容器里
    docker cp 宿主機文件 容器id:容器目錄
    docker cp leopard/ 0944b902095c:/opt
  20、啟動終止狀態的容器
    docker container start [容器名]
    修改exited狀態的容器下文件許可權
    docker inspect [CONTAINER ID]
    找見UpperDir對應的目錄,併進入,找見對應的文件進行修改即可

  21、查看docker 不同
    docker diff nginxweb
  22、保存新鏡像(docker要在運行狀態)
    --author 指定修改者 --message 記錄修改描述(類似git)
    docker commit --author “[email protected]” --message “修改” nginxweb nginx:v1
    給容器鏡像修改標簽
    docker tag <image id> <tagname>
    docker tag lifeilong:v1 lifeilong:latest
    修改容器啟動時執行的命令
    docker commit -a "lifeilong" -c 'CMD ["/bin/httpd", "-f", "-h", "/data/html"]' -p b2 lifeilong:v2

  23、訂製自己的docker
    touch Dockerfile創建配置文件,內容如下:
    FROM nginx
    RUN echo ‘<h1>Hello, Docker!</h1>’ > /usr/share/nginx/html/index.html
    構建容器($(pwd)為上下文路徑)
    docker build -t nginx:v2 $(pwd)
  24、Dockerfile命令
    COPY test.txt /home 將test.txt複製到容器/home目錄(會把文件的元數據也複製,許可權時間等)
    ADD 高級的複製命令,原路徑可以是URL,壓縮文件會自動解壓
    CMD 容器啟動命令

  25、運行docker
    docker run 時後臺操作:
    1、檢查本地是否有鏡像,沒有就從共有倉庫下載
    2、利用鏡像創建並啟動一個容器
    3、分配一個文件系統
    4、從宿主機網橋中橋接一個虛擬口到容器
    5、從地址池配置一個IP地址給容器
    6、執行用戶指定的應用程式
    7、執行完終止容器

  26、數據捲,容器內部及之間管理數據
    1、創建數據捲
      docker volume create my-vol
    2、查看
      docker volume ls
      docker volume inspect my-vol 查看詳細信息
    3、啟動掛載(將數據捲掛載到容器/webapp目錄)
      docker run -d -P --name nginxtest --mount source=my-vol, target=/webapp nginx
    4、刪除數據捲
      docker volume rm my-vol
      docker volume prune 刪除所有閑置數據捲
  27、掛載主機目錄、文件
    將主機目錄/home/webapp 掛載到容器/opt/webapp 預設許可權是讀寫,加readonly指定為只讀
    docker run -d -P --name nginxtest --mount type=bind,source=/home/webapp/,target=/opt/webapp,readonly nginx
    掛載文件
    docker run -d -P --name nginxtest --mount type=bind,source=/home/webapp/,target=/opt/webapp,readonly nginx

  28、網路容器互聯
    創建網路 -d 標識網路類型
    docker network create -d bridge my-net
    啟動兩個容器test1和test2在同一網路
    docker run -it --rm --name test1 --network my-net nginx bash
    docker run -it --rm --name test2 --network my-net nginx bash


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.首先通過yum安裝python可能用到的依賴 2.下載源碼包 3.安裝 4.構建python3和pip3的軟連接 需要註意的是,以後使用python和pip都需要"python3"和"pip3",我這樣構建軟連接是因為我使用的是雲伺服器,而雲伺服器自帶有python2,而我又不想覆蓋掉pytho ...
  • 用戶交互 在《學習筆記04》中我們有提到位置參數,位置參數是用來向腳本傳遞參數的一種方式。還有一種方式,是read命令。 [root@c7-server ~]# read name alongdidi [root@c7-server ~]# echo $name alongdidi read命令可以 ...
  • 參考穀粒學院的linux視頻教程:http://www.gulixueyuan.com/course/300/task/7091/show ...
  • windows2016_x64搭建ELK(datasource filebeat logstash elasticsearch kibana) 1. 本文示例日誌程式基於asp.net core 3.0+nlog 2. ELK相關程式如下圖: 3. 日誌組件推薦: 客戶端安裝和運行 1. 下載fil ...
  • STM32F103是一款高性價比、多功能的單片機,配備常用的32位單片機片外資源,基於ARM Cortex-M3的32位處理器晶元,片內具有256KB FLASH,48KB RAM ( 片上集成12Bit A/D、D/A、PWM、CAN、USB、SDIO、FSMC等資源)。是應用的較為廣泛的一款單片 ...
  • 1、man find 解釋: find - search for files in a directory hierarchy,即:在目錄下查找文件 2、按文件被修改的時間查詢文件 命令格式: find 目錄 -mtime +n -name 文件名 在指定目錄及其子目錄下查找(負無窮,nowTime ...
  • 最近windows上需要配置全局代理 走 socks5,發現同類型的有 cow pcap 等解決方案,通過嘗試發現還是proxifier 比較好用! 下載:https://www.proxifier.com/download/legacy/ProxifierSetup331.exe 註冊: 激活ke ...
  • 安裝IIS7 1、打開伺服器管理器(開始-電腦-右鍵-管理-也可以打開),添加角色 直接下一步 勾選Web伺服器(IIS),下一步,有個註意事項繼續下一步(這裡我就不截圖了) 勾選ASP.NET會彈出以下視窗添加所需的角色服務,勾選CGI(這裡根據個人情況勾選,CGI是必選的,否則PHP不生效的) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...