ubuntu20 安裝docker

一.官網安裝文檔 (基本按官方文檔安裝)

Install Docker Engine on Ubuntu | Docker Docs

二.安裝步驟

1.docker 需要64位操作系統、linux內核要在3.1以上

#uname -r

2.卸載可能存在的舊版本

#sudo apt-get remove docker docker-engine docker-ce docker.io

3.更新apt包索引

#sudo apt-get update

4.安裝依賴

#sudo apt-get install ca-certificates curl gnupg

5.設置GPG key 權限

#sudo install -m 0755 -d /etc/apt/keyrings

6.添加Docker官方的GPG密鑰

#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

7.獲取執行權限

#sudo chmod a+r /etc/apt/keyrings/docker.gpg

8.將倉庫添加到Apt源

echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#sudo apt-get update

9.安裝docker

#sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

三、docker啟動與關閉命令

1.啟動

#sudo?systemctl start?docker

2.關閉

#sudo systemctl stop?docker

3.查看狀態

#sudo systemctl status docker

4.查看端口號(docker 默認2375)

#netstat -ntlp

5.設置開機自啟

#sudo systemctl enable docker

6.查看docker版本

#sudo docker version

7.查看Docker概要信息

#sudo docker info

8.查看Docker總體幫助文檔

#sudo docker --help

四、docker鏡像命令

1.列出本地主機上的鏡像

#sudo docker images

參數:

  • -a:列出所有鏡像(含歷史鏡像)
  • -q:只顯示鏡像ID
  • -f:過濾

2.在遠程倉庫中搜索鏡像

#docker search 鏡像名稱

參數:

  • -f:過濾
  • --limit 數量:只展示前幾項

3.下載鏡像

#docker pull 鏡像名稱[:tag]

注:不加 tag 時,默認下載最新的鏡像(即tag為latest

4.查看占據的空間

#docker rmi 鏡像名稱/ID

5.刪除鏡像

#docker rmi 鏡像名稱/ID

6.刪除全部鏡像

#docker rmi -f $(docker images -qa)

五、容器命令

1.新建啟動容器

#sudo?docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用的參數:

  • --name:為容器指定一個名稱
  • -d:后臺運行容器并返回容器ID,也即啟動守護式容器
  • -i:以交互模式(interactive)運行容器,通常與-t同時使用
  • -t:為容器重新分配一個偽輸入終端(tty),通常與-i同時使用。也即啟動交互式容器(前臺有偽終端,等待交互)
  • -e:為容器添加環境變量
  • -P:隨機端口映射。將容器內暴露的所有端口映射到宿主機隨機端口
  • -p:指定端口映射

-p指定端口映射的幾種不同形式:

  • -p hostPort:containerPort:端口映射,例如-p 8080:80
  • -p ip:hostPort:containerPort:配置監聽地址,例如 -p 10.0.0.1:8080:80
  • -p ip::containerPort:隨機分配端口,例如 -p 10.0.0.1::80
  • -p hostPort1:containerPort1 -p hostPort2:containerPort2:指定多個端口映射,例如-p 8080:80 -p 8888:3306

2.啟動交互式容器(exit退出)

# -i 交互模式
# -t 分配一個偽輸入終端tty
# ubuntu 鏡像名稱
# /bin/bash(或者bash) shell交互的接口
docker run -it ubuntu /bin/bash

3.啟動守護式容器

#docker run -d 容器名

4.列出正在運行的容器

#docker ps [OPTIONS]

參數:

  • -a:列出當前所有正在運行的容器+歷史上運行過的容器
  • -l:顯示最近創建的容器
  • -n:顯示最近n個創建的容器
  • -q:靜默模式,只顯示容器編號

5.啟動已經停止的容器

#docker start/stop?容器ID或容器名

6.重啟容器

#docker restart 容器ID或容器名

7.強制停止容器

#docker kill 容器ID或容器名

8.刪除已經停止的容器

#docker rm -f 容器ID或容器名

一次刪除多個容器:

#docker rm -f ${docker ps -a -q}

或者
#docker ps -a -q | xargs docker rm

9.查看容器日志

#docker logs 容器ID或容器名

10.查看容器內運行的進程

#docker top 容器ID或容器名

11.查看容器內部細節

#docker inspect 容器ID或容器名

12.進入正在運行的容器,并以命令行交互:

#docker exec -it 容器ID bashShell

重新進入:#docker attach 容器ID

docker execdocker attach 區別:

  • attach直接進入容器啟動命令的終端,不會啟動新的進程,用exit退出會導致容器的停止
  • exec是在容器中打開新的終端,并且可以啟動新的進程,用exit退出不會導致容器的停止

13.容器和宿主機文件拷貝

容器內文件拷貝到宿主機:#docker cp 容器ID:容器內路徑 目的主機路徑

宿主機文件拷貝到容器中:#docker cp 主機路徑 容器ID:容器內路徑

14.導入和導出容器

export:導出容器的內容流作為一個tar歸檔文件(對應import命令);

import:從tar包中的內容創建一個新的文件系統再導入為鏡像(對應export命令);

事例:

# 導出
# docker export 容器ID > tar文件名
docker export abc > aaa.tar# 導入
# cat tar文件 | docker import - 自定義鏡像用戶/自定義鏡像名:自定義鏡像版本號
cat aaa.tar | docker import - test/mytest:1.0.1

15.將容器生成新鏡像

#docker commit -m="提交的描述信息" -a="作者" 容器ID 要創建的目標鏡像名:[tag]

六、idea 連接docker

1.先安裝docker插件

2.修改docker遠程配置

#vim /usr/lib/systemd/system/docker.service

添加 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375? ?(如下圖)

3.在左下解services添加連接、如下圖

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

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

相關文章

《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》閱讀筆記

論文標題 《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》 作者 Albert Gu 和 Tri Dao 初讀 摘要 Transformer 架構及其核心注意力模塊 地位:目前深度學習領域普遍的基礎模型。 為了解決 Transformers 在長序列上的計算效率低下的問題…

【193】Java8調用POI 5.2.5生成帶圖片的Excel文件

本文假定 Excel 文件中保存的是員工數據,并且數據中帶有員工的頭像。代碼支持的圖片格式有png、bmp、jpg、gif。但是這里需要注意,有些網站上下載的圖片雖然后綴名是 jpg,但是文件二進制內容的格式是 WebP 的。Java8 目前官方api不支持 WebP …

【代碼隨想錄算法訓練營-第四天】【鏈表】24,19, 面試題 02.07,142

24. 兩兩交換鏈表中的節點 第一遍-遞歸-小看了一下題解 思路: 讀了兩遍題目才理解…相鄰節點的交換,這個操作很容易實現,但需要一個tmpNode因為是鏈表的題目,沒開始思考之前先加了dummyNode,還真管用把dummyNode作為…

空氣質量數據和氣象數據

1、北京、上海、廣州的空氣質量數據和氣象數據 要素如下: 逐日數據 時間跨度:2014.1.1-2022.3.31,共3012條數據 數據質量:98% 城市:只有北京、上海、廣州 可以用作論文數據 數據來源:中國環境監測總站…

23. 合并 K 個升序鏈表 --力扣 --JAVA

題目 給你一個鏈表數組,每個鏈表都已經按升序排列。 請你將所有鏈表合并到一個升序鏈表中,返回合并后的鏈表。 解題思路 對每個鏈表的首節點進行比較,獲取當前的最小節點;將每個階段的最小節點進行鏈接; 代碼展示 c…

亞馬遜云科技re_Invent 2023產品體驗:亞馬遜云科技產品應用實踐 國賽選手帶你看Elasticache Serverless

拋磚引玉 講一下作者背景,曾經參加過國內世界技能大賽云計算的選拔,那么在競賽中包含兩類,一類是架構類競賽,另一類就是TroubleShooting競賽,對應的分別為AWS GameDay和AWS Jam,想必也有朋友玩過此類競賽&…

4.權限特權轉移代碼

核心文件用戶文件引導文件 核心文件 ;------------------------新增--------------------------------; 本文件涉及了權限, 將使用調用門描述符來處理 低權限到高權限的轉移;------------------------權限---------------------------- ;此文件延用上個CORE.asm. 并做出一些修…

[linux] 解壓縮xz

在Linux命令行中解壓縮.xz文件,你可以使用以下幾種方法: 使用unxz工具: unxz filename.xz 這個命令會將filename.xz解壓縮為一個同名的未壓縮文件。如果原文件有其他的擴展名(如.tar.xz),那么這個擴展名會被…

關于洛谷P1007最快的方法

P1007 獨木橋 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 題目背景 戰爭已經進入到緊要時間。你是運輸小隊長,正在率領運輸部隊向前線運送物資。運輸任務像做題一樣的無聊。你希望找些刺激,于是命令你的士兵們到前方的一座獨木橋上欣賞風景&#xf…

智能儀表板DevExpress Dashboard v23.1 - 支持自定義樣式創建

使用DevExpress Analytics Dashboard,再選擇合適的UI元素(圖表、數據透視表、數據卡、計量器、地圖和網格),刪除相應參數、值和序列的數據字段,就可以輕松地為執行主管和商業用戶創建有洞察力、信息豐富的、跨平臺和設…

STM32 配置TIM定時中斷常用庫函數

單片機學習! 目錄 ?編輯 1. 函數TIM_DeInit 2. 函數TIM_TimeBaseInit 配置時基單元 3. 函數TIM_TimeBaseStructInit 4. 函數TIM_Cmd 運行控制 5. 函數TIM_ITConfig 中斷輸出控制 6. 時基單元的時鐘選擇函數 6.1 函數TIM_InternalClockConfig 6.2 函數 TIM…

Configuring environment||ROS2環境配置

Goal: This tutorial will show you how to prepare your ROS 2 environment. Tutorial level: Beginner Time: 5 minutes ROS 2 relies on the notion (concept)of combining workspaces using the shell environment. “Workspace” is a ROS term …

C++進階篇8---智能指針

一、引言 為什么需要智能指針? 在上一篇異常中,關于內存釋放,我們提到過一個問題---當我們申請資源之后,由于異常的執行,代碼可能直接跳過資源的釋放語句到達catch,從而造成內存的泄露,對于這種…

C# Winform 日志系統

目錄 一、效果 1.刷新日志效果 2.單獨日志的分類 3.保存日志的樣式 二、概述 三、日志系統API 1.字段 Debug.IsScrolling Debug.Version Debug.LogMaxLen Debug.LogTitle Debug.IsConsoleShowLog 2.方法 Debug.Log(string) Debug.Log(string, params object[]) …

數據結構之內部排序

目錄 7-1 直接插入排序 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 7-2 尋找大富翁 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 7-3 PAT排名匯總 輸入格式: 輸出格式: 輸入樣例: 輸出樣例: 7-4 點贊狂魔 輸入格式: 輸出格式: 輸入樣例&a…

RabbitMQ在國內為什么沒有那么流行?

MQ(消息隊列)的世界。MQ,就像是一個巨大的郵局,負責在不同服務或應用間傳遞消息。它可以幫助我們解耦系統,提高性能,還能做到異步處理和流量削峰。 基本使用 RabbitMQ是一個開源的消息代理和隊列服務器&a…

spring boot + uniapp 微信公眾號 jsapi 支付

后端支付類 package com.ruoyi.coupon.payment;import com.google.gson.Gson; import com.ruoyi.coupon.payment.dto.PayParamJsapiDto; import com.ruoyi.coupon.payment.dto.RefundParam; import com.ruoyi.coupon.service.ICouponConfigService; import com.wechat.pay.jav…

FFmpeg抽取視頻h264數據重定向

根據視頻重定向技術解析中的 截獲解碼視頻流的思路,首先需要解決如何輸出視頻碼流的問題。 目前只針對h264碼流進行獲取,步驟如下: 打開mp4文件并創建一個空文件用于存儲H264數據 提取一路視頻流資源 循環讀取流中所有的包(AVPacket),為…

redis中使用pipeline批量處理請求提升系統性能

在操作數據庫時,為了加快程序的執行速度,在新增或更新數據時,可以通過批量提交的方式來減少應用和數據庫間的傳輸次數;在redis中也有這樣的技術實現批量處理,也就是管道——Pipeline。它也是通過批量提交數據的方式來實…

線程安全3--wait和notify

文章目錄 wait and notify(等待通知機制notify補充 wait and notify(等待通知機制 引入wait notify就是為了能夠從應用層面上,干預到多個不同線程代碼的執行順序,這里說的干預,不是影響系統的線程調度策略&#xff08…