ubuntu環境下docker容器詳細安裝使用

文章目錄

    • 一、簡介
    • 二、ubuntu安裝docker
      • 1.刪除舊版本
      • 2.安裝方法一
      • 3. 安裝方法二(推薦使用)
      • 4.運行Docker容器
      • 5. 配置docker加速器
    • 三、Docker鏡像操作
      • 1. 拉取鏡像
      • 2. 查看本地鏡像
      • 3. 刪除鏡像
      • 4. 鏡像打標簽
      • 5. Dockerfile生成鏡像
    • 四、Docker容器操作
      • 1. 獲取鏡像
      • 2. 啟動容器
      • 3. 退出
      • 4. 查看所有的容器
      • 5. 啟動已停止運行的容器
      • 6. 停止一個容器
      • 7. 重啟容器
      • 8.進入容器
      • 9. 導入導出容器
      • 10. 刪除容器
      • 11. 查看容器端口的映射
      • 12. 查看容器的日志
      • 13. 一次性刪除所有的運行容器
      • 14. 查看容器的信息
    • 五、Docker容器測試
      • 1.使用中科大鏡像加速器
      • 2.把 Docker 配置為普通用戶訪問
      • 3.拉取ubuntu18.04鏡像
      • 4.運行鏡像進入容器
      • 5. Docker安裝常用工具
      • 6. 添加用戶
      • 7. docker 文件的拷貝
      • 8. 安裝ssh遠程連接

一、簡介

  • ubuntu下使用docker為了解決不同廠家的核板需要搭建不通的虛擬機交叉編譯環境,使用docker就可以在一個虛擬機中完成多個核板的程序開發
  • 本文記錄自己的安裝過程以及Docker命令的使用記錄
    在這里插入圖片描述

二、ubuntu安裝docker

1.刪除舊版本

sudo apt-get remove docker docker-engine docker.io containerd runc

2.安裝方法一

使用官方安裝腳本安裝

 curl -fsSL https://test.docker.com -o test-docker.shsudo sh test-docker.sh

在這里插入圖片描述

3. 安裝方法二(推薦使用)

  1. 更新 apt 包索引,輸入以下命令:
    sudo apt-get update
    
  2. 安裝 apt 依賴包,用于通過 HTTPS 來獲取倉庫,輸入以下命令
    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
  3. 添加 Docker 的官方 GPG 密鑰,輸入以下命令:
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    
  4. 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通過搜索指紋的后 8 個字符,驗證現在是否擁有帶有指紋的密鑰,輸入以下命令:
    sudo apt-key fingerprint 0EBFCD88
    
  5. 使用以下指令設置穩定版倉庫
    sudo add-apt-repository \ 
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
    $(lsb_release -cs) \
    stable"
    
  6. 安裝 Docker Engine-Community
    sudo apt-get update
    
  7. 安裝最新版本的 Docker Engine-Community 和 containerd,輸入以下命令
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    

4.運行Docker容器

  • 啟動docker服務
    service docker start
    
  • 列出docker現有鏡像
    docker images
    
  • 配置docker服務開機自啟
    systemctl enable docker
    

5. 配置docker加速器

中科大鏡像加速器

https://docker.mirrors.ustc.edu.cn

執行下面命令

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、Docker鏡像操作

1. 拉取鏡像

docker image pull 鏡像名稱

拉取最新版的 Ubuntu 鏡像

docker pull ubuntu
docker pull ubuntu:latest

2. 查看本地鏡像

docker images

在這里插入圖片描述

3. 刪除鏡像

docker image rm 鏡像名或鏡像id

4. 鏡像打標簽

docker tag <鏡像ID或名稱> <新標簽名>

5. Dockerfile生成鏡像

生成一個dockerfile文件

vim dockerfile
################################################
#
#生成SSH服務的ubuntu鏡像
#
#################################################基于哪個鏡像生成新的鏡像
FROM ubuntu:20.04#作者名
MAINTAINER oldzhai#設置環境變量
ENV TZ Asia/Shanghai
ENV LANG zh_CN.UTF-8#執行命令
#替換為阿里源
RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list \&& sed -i 's#http://security.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list#更新軟件源并安裝軟件
#安裝ssh服務
RUN apt-get update -y \&& apt-get -y install iputils-ping \&& apt-get -y install wget \&& apt-get -y install net-tools \&& apt-get -y install vim \&& apt-get -y install openssh-server \&& apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*#設置密碼
RUN echo 'root:root' |chpasswd#允許root用戶登入
RUN sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config#創建sshd目錄
RUN mkdir /var/run/sshd# 聲明端口
EXPOSE 22#開始ssh服務
CMD ["/usr/sbin/sshd", "-D"]

使用當前目錄的 Dockerfile 創建鏡像,標簽為 ubuntu_ssh:20.04
注:后面的 .表示當前目錄
使用docker images命令可以查看當前已有鏡像

docker build -t ubuntu_ssh:20.04 .

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

四、Docker容器操作

1. 獲取鏡像

如果我們本地沒有 ubuntu 鏡像,我們可以使用 docker pull 命令來載入 ubuntu 鏡像:

docker pull ubuntu

2. 啟動容器

docker run -it ubuntu /bin/bash//-v指定共享目錄
docker run -itd --name ubuntu01 -v /root/test:/root ubuntu//-p指定端口號 宿主機8088 容器內部是80
docker run -itd --name ubuntu01 -v /root/test:/root -p 8088:80 ubuntu
docker run -itd --name ubuntu01 -v /root/test:/root -p 127.0.0.1:8088:80 ubuntu//-v 共享目錄 將當前目錄掛載到容器的/data
//-p 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash

3. 退出

exit

4. 查看所有的容器

docker ps -a

5. 啟動已停止運行的容器

//使用 docker start 啟動一個已停止的容器
docker start b750bbbcfd88 //后臺運行在大部分的場景下,我們希望 docker 的服務是在后臺運行的,我們可以過 -d 指定容器的運行模式
docker run -itd --name ubuntu-test ubuntu /bin/bash

6. 停止一個容器

docker stop <容器 ID>

7. 重啟容器

停止的容器可以通過 docker restart 重啟

docker restart <容器 ID>

8.進入容器

如果從這個容器退出,容器不會停止,這就是為什么推薦大家使用 docker exec 的原因

docker exec -it 243c32535da7 /bin/bash

如果從這個容器退出,會導致容器的停止

docker attach 1e560fca3906 

9. 導入導出容器

這種方式主要用于分享或遷移整個鏡像,包括所有版本、標簽和歷史

導出:
docker save -o <保存路徑>/myimage.tar myimage:latest
導入:
docker load -i <路徑>/myimage.tar

這種方式主要用于分享或遷移容器的當前狀態。這不包括容器的歷史或元數據,如環境變量,所以它常常用于對容器進行快照

導出:
docker export <容器ID> > mycontainer.tar
導入:
docker import mycontainer.tar

10. 刪除容器

刪除容器使用 docker rm 命令:

docker rm -f 1e560fca3906

下面的命令可以清理掉所有處于終止狀態的容器

docker container prune

11. 查看容器端口的映射

//bf08b7f2cd89 為容器的id
docker port bf08b7f2cd89

12. 查看容器的日志

docker logs -f bf08b7f2cd89

13. 一次性刪除所有的運行容器

docker rm -f `docker ps -a -q`

14. 查看容器的信息

docker inspect 730fde4da6ac
//過濾只查詢ip信息
docker inspect --format='{{.NetworkSettings.IPAddress}}' 730fde4da6ac

在這里插入圖片描述

五、Docker容器測試

1.使用中科大鏡像加速器

上面設置了,可以直接跳過

sudo vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

重啟 docker 服務

sudo systemctl restart docker

2.把 Docker 配置為普通用戶訪問

//添加 docker 用戶組,輸入以下命令
sudo groupadd docker//將登陸用戶加入到 docker 用戶組中
sudo usermod -aG docker $USER//更新用戶組(這一步非常重要)
newgrp docker//重啟 docker 服務
sudo systemctl enable docker
sudo systemctl restart docker

3.拉取ubuntu18.04鏡像

sudo apt update
docker pull ubuntu:18.04

4.運行鏡像進入容器

docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash

-p 參數:容器的 3000 端口映射到本機的 8000 端口。
-it 參數:容器的 Shell 映射到當前的 Shell,然后你在本機窗口輸入的命令,就會傳
入容器。
ubuntu:18.04:image 文件的名字
/bin/bash:容器啟動以后,內部第一個執行的命令。這里是啟動 Bash,保證用戶可以使
用 Shell。
在這里插入圖片描述

5. Docker安裝常用工具

apt update
apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils bc time

在這里插入圖片描述
過程中需要配置地區,選擇亞洲上海:
在這里插入圖片描述
在這里插入圖片描述

6. 添加用戶

設置超級用戶

apt install sudo

添加普通用戶

visudo

添加自己的用戶名,保存并退出

oldzhai ALL=(ALL:ALL) ALL

在這里插入圖片描述

adduser oldzhai

在這里插入圖片描述
切換到普通用戶

su oldzhai

在這里插入圖片描述

7. docker 文件的拷貝

//docker cp 主機的目錄文件 容器運行id:容器路徑
docker cp /home/topeet/topeet-qt5.14.2/ bc1d9b59bc0b:/home/topeet/project///容器文件 拷貝到虛擬機
docker cp bc1d9b59bc0b:/home/topeet/project/ /home/topeet/topeet-qt5.14.2/

8. 安裝ssh遠程連接

行容器指定端口

-p 參數:容器的 22 端口映射到本機的 10022 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash

安裝ssh

apt update
apt-get install ssh

在這里插入圖片描述

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

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

相關文章

Qt | TCP服務器端框架搭建

文章目錄 server.hserver.cppmain.cpptcpclientsocket.htcpclientsocket.cpptcpserver.htcpserver.cpp提示運行QTcpServer 是 Qt 框架中的一個類,用于實現 TCP 服務器。它提供了一種方便的方式來創建和管理 TCP 服務器,以便與客戶端進行通信。QTcpServer 類屬于 QtNetwork 模…

Webserver(1): C++實現線程池

在實現線程池之前&#xff0c;首先對線程池中所需要用到的互斥鎖、條件變量和信號量進行了簡單的封裝。 互斥鎖、條件變量和信號量封裝 locker.h頭文件如下&#xff08;已詳細注釋&#xff09; /* 這里面對互斥鎖&#xff0c;條件變量和信號量進行了封裝 保證工作隊列的線程…

微服務架構的流行框架之:Dubbo Spring Cloud

Dubbo Dubbo是一個高性能、輕量級的開源Java RPC&#xff08;Remote Procedure Call&#xff0c;遠程過程調用&#xff09;框架&#xff0c;由阿里巴巴開發并貢獻給了Apache基金會&#xff0c;成為Apache的頂級項目。Dubbo提供了RPC通信和服務治理的解決方案&#xff0c;使得構…

深入理解C語言中的變量和常量

變量和常量 1. 前言2. 預備知識2.1 printf和%d2.2 \n2.3 scanf2.4 scanf在vs中報錯2.5 extern2.6 數組的初始化 3. 變量和常量的區別4. 變量4.1 定義變量的方法4.2 變量的分類4.2.1 局部優先 4.3 變量的使用4.4 變量的作用域4.4.1 局部變量的作用域4.4.2 全局變量的作用域 4.5 …

機器學習|KNN和Kmeans

KNN和Kmeans KNN KNN-K個最近的鄰居&#xff0c;而K是可人先預設出來的。 所謂近朱者赤&#xff0c;近墨者黑。 可以選取離當前最近的K個樣本來作為輔助判斷&#xff0c;因為本樣本和最近的K個樣本應該是處于一種相似的狀態。 以下是一個蘋果和梨的識別任務。 圖上會出現一個未…

深入Spring Boot核心技術:代碼實戰解析

第一章&#xff1a;揭開Spring Boot自動配置的面紗 自動配置原理 讓我們首先通過一個簡化的Spring Boot應用啟動類來直觀感受自動配置的工作原理&#xff1a; java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.Sprin…

【軟件設計師】通俗易懂的去了解算法的時間復雜度

&#x1f413; 時間復雜度 常用排序的時間復雜度 時間頻度 算法需要花費的時間&#xff0c;和它語句執行的次數是成正比的&#xff0c;所以會把一個算法種語句執行次數稱為語句頻度和時間頻度、記作T(n)。 定義 時間復雜度就是找到一個無限接近時間頻度T(n)同數量級的函數&am…

小腦萎縮患者生活指南:守護你的每一步

親愛的讀者朋友們&#xff0c;今天我們要聊一聊一個特殊但非常重要的群體——小腦萎縮患者。在這個充滿挑戰的旅程中&#xff0c;我們將一起探索如何用愛和智慧為患者打造一個更加安全、舒適的生活環境。 小腦萎縮是指小腦細胞逐漸減少&#xff0c;導致小腦體積縮小的一種病癥…

全量知識系統問題及SmartChat給出的答復 之16 幣圈生態鏈和行為模式

Q.42 幣圈生態鏈和行為模式 我認為&#xff0c;上面和“幣”有關的一系列概念和技術&#xff0c;按設計模式的劃分 &#xff0c;整體應該都屬于行為模式&#xff0c;而且應該囊括行為模式的所有各個方面。 而行為又可以按照三種不同的導向&#xff08;以目的或用途為導向、過…

互聯網摸魚日報(2024-03-04)

互聯網摸魚日報(2024-03-04) 36氪新聞 Sora來了&#xff0c;你又焦慮了嗎&#xff1f; 最前線&#xff5c;安踏首家球鞋集合店落地北京三里屯 一位中國遙感科學家&#xff0c;決定“跨界”拯救瀕危動物野駱駝 | 最前線 本周雙碳大事&#xff1a;工信部等七部門發文推動制造…

mirthConnect忽略HTTPS SSL驗證

mirthConnect SSL忽略驗證 1、下載https網站證書 點擊不安全---->證書無效 2、查看mirth 秘鑰庫口令 在mirthConnect 的conf目錄下面keystore.storepass 3、導入證書到本地 在jdk的bin目錄下面執行 keytool -importcert -file "下載的網站證書路徑" -keysto…

LeetCode每日一題【c++版】- leetcode 225.用隊列實現棧

題目描述 請你僅使用兩個隊列實現一個后入先出&#xff08;LIFO&#xff09;的棧&#xff0c;并支持普通棧的全部四種操作&#xff08;push、top、pop 和 empty&#xff09;。 實現 MyStack 類&#xff1a; void push(int x) 將元素 x 壓入棧頂。int pop() 移除并返回棧頂元素…

Python中按指定數量分割列表字符串的方法

引言 處理列表數據時&#xff0c;有時我們需要將一個包含長字符串的列表分割成按照特定長度的小字符串的多個列表。這在文本處理、批量數據處理或者當我們需要將數據分塊進行并行處理時非常常見。Python作為一個強大的編程語言&#xff0c;提供了很多方便的方法來實現這一功能…

CV論文--2024.3.4

1、Deep Networks Always Grok and Here is Why 中文標題&#xff1a;深度網絡總是讓人摸不著頭腦&#xff0c;原因如下 簡介&#xff1a;本文探討了深度神經網絡&#xff08;DNN&#xff09;中一種稱為"延遲泛化"或"Grokking"的現象。在接近零的訓練誤差…

使用ssh密鑰提交、拉取代碼的介紹

網絡世界中的數據并不安全 網絡中無時無刻有大量的數據傳輸&#xff0c;傳輸過程中需要經過各種網絡設備和物理媒介你的數據可能會在傳輸的某一個環節被一個“中間人”攔截&#xff0c;造成泄密&#xff0c;甚至會篡改你的數據&#xff0c;讓你發出錯誤的信息 SSH 為 Secure …

MySQL 5.5、5.6、5.7的主從復制改進

主從復制面臨的問題 MySQL一直以來的主從復制都是被詬病,原因是: 1、主從復制效率低 早期mysql的復制是通過將binlog語句異步推送到從庫。從庫啟動一個IO線程將接收到的數據記錄到relaylog中;另外啟動一個SQL線程負責順序執行relaylog中的語句實現對數據的拷貝。 這里的…

如何用Elementor創建WordPress會員網站

在下面的文章中&#xff0c;我們將向您展示如何使用Elementor和MemberPress在WordPress中輕松構建會員網站。這篇文章將涵蓋WordPress會員網站設置過程、會員資格和受保護內容創建、重要頁面和登錄表單設計、電子郵件通知管理、報告等。 目錄 什么是WordPress會員網站&#x…

【go從入門到精通】go基本類型和運算符用法

大家好&#xff0c;這是我給大家準備的新的一期專欄&#xff0c;專門講golang&#xff0c;從入門到精通各種框架和中間件&#xff0c;工具類庫&#xff0c;希望對go有興趣的同學可以訂閱此專欄。 --------------------------------------------------------------------------…

與字體有關的CSS

隱藏多余字體 text-overflow: ellipsis &#xff08;多余文本顯示省略號&#xff09; 需要配合overflow使用 -webkit-box-orient: vertical; display: -webkit-box; -webkit-line-clamp: number &#xff08;超出多少行顯示省略號&#xff09; 強制顯示一行 whi…

.NET高級面試指南專題十四【 觀察者模式介紹,最常用的設計模式之一】

簡介&#xff1a; 觀察者模式&#xff08;Observer Pattern&#xff09;是一種行為型設計模式&#xff0c;其目的是定義了一種一對多的依賴關系&#xff0c;當一個對象的狀態發生變化時&#xff0c;所有依賴于它的對象都會得到通知并自動更新。 原理&#xff1a; 在觀察者模式中…