天天看點

Ubuntu與Docker -- Docker安裝、使用、容器環境搭建一、安裝Docker二、鏡像和容器三、Docker裡的Ubuntu

目錄

一、安裝Docker

Docker 教程

Docker的應用場景

Docker 的優點

1、快速,一緻地傳遞您的應用程式

2、響應式部署和擴充

3、在同一硬體上運作更多工作負載

二、鏡像和容器

三、Docker裡的Ubuntu

一、安裝Docker

       安裝可以按照菜鳥教程的步驟來,我在安裝的時候沒有出現異常。

       教程位址:Docker 教程 | 菜鳥教程

Docker 教程

Docker 是一個開源的應用容器引擎,基于 Go 語言 并遵從 Apache2.0 協定開源。

Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛拟化。

容器是完全使用沙箱機制,互相之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。

Docker 從 17.03 版本之後分為 CE(Community Edition: 社群版) 和 EE(Enterprise Edition: 企業版),我們用社群版就可以了。

Docker的應用場景

  • Web 應用的自動化打包和釋出。
  • 自動化測試和持續內建、釋出。
  • 在服務型環境中部署和調整資料庫或其他的背景應用。
  • 從頭編譯或者擴充現有的 OpenShift 或 Cloud Foundry 平台來搭建自己的 PaaS 環境。

Docker 的優點

Docker 是一個用于開發,傳遞和運作應用程式的開放平台。Docker 使您能夠将應用程式與基礎架構分開,進而可以快速傳遞軟體。借助 Docker,您可以與管理應用程式相同的方式來管理基礎架構。通過利用 Docker 的方法來快速傳遞,測試和部署代碼,您可以大大減少編寫代碼和在生産環境中運作代碼之間的延遲。

1、快速,一緻地傳遞您的應用程式

Docker 允許開發人員使用您提供的應用程式或服務的本地容器在标準化環境中工作,進而簡化了開發的生命周期。

容器非常适合持續內建和持續傳遞(CI / CD)工作流程,請考慮以下示例方案:

  • 您的開發人員在本地編寫代碼,并使用 Docker 容器與同僚共享他們的工作。
  • 他們使用 Docker 将其應用程式推送到測試環境中,并執行自動或手動測試。
  • 當開發人員發現錯誤時,他們可以在開發環境中對其進行修複,然後将其重新部署到測試環境中,以進行測試和驗證。
  • 測試完成後,将修補程式推送給生産環境,就像将更新的鏡像推送到生産環境一樣簡單。

2、響應式部署和擴充

Docker 是基于容器的平台,允許高度可移植的工作負載。Docker 容器可以在開發人員的本機上,資料中心的實體或虛拟機上,雲服務上或混合環境中運作。

Docker 的可移植性和輕量級的特性,還可以使您輕松地完成動态管理的工作負擔,并根據業務需求訓示,實時擴充或拆除應用程式和服務。

3、在同一硬體上運作更多工作負載

Docker 輕巧快速。它為基于虛拟機管理程式的虛拟機提供了可行、經濟、高效的替代方案,是以您可以利用更多的計算能力來實作業務目标。Docker 非常适合于高密度環境以及中小型部署,而您可以用更少的資源做更多的事情。

二、鏡像和容器

       為了便于了解和自己的總結,在這裡認為 “鏡像和容器” 是 “一對多” 的關系,即在Docker安裝後,先用pull指令拉取、建立一個鏡像image,然後以這個鏡像為基礎,用run指令,啟動一個容器container,然後在這個容器裡進行初始的程式運作環境搭建,然後進行指令行操作。

       教程位址:Docker 鏡像使用 | 菜鳥教程

       教程位址:Docker 容器使用 | 菜鳥教程

       教程位址:Docker 倉庫管理 | 菜鳥教程

三、Docker裡的Ubuntu

       建立時用到的指令總結:

# 如果提示請求拒絕,permission denied,就自行在每條指令前加上 sudo 

# 通過 docker 的兩個參數 -i -t,讓 docker 運作的容器實作"對話"的能力
# 如果沒有 Ubuntu16.04 的鏡像,會自動拉取
docker run -it --gpus all ubuntu:16.04

# 此時要退出終端,直接輸入 exit
exit

# 在使用 -d 參數時,容器啟動後會進入背景。
docker run -it --gpus all ubuntu:16.04

# 此時想要進入容器,可以通過以下指令進入:docker attach 或者 docker exec
# 推薦大家使用 docker exec 指令,因為此退出容器終端,不會導緻容器的停止。
docker exec

# 檢視鏡像
docker images

# 檢視容器
docker ps -a

# 在宿主主機内,也就是你的機器的系統内,使用 docker logs 指令,檢視容器内的标準輸出:
docker logs

# 我們使用 docker stop 指令來停止容器:
ocker stop <容器 ID>

# 在docker與主機間複制檔案,注意,容器内的檔案全路徑,本機儲存檔案的全路徑
docker cp <容器 ID>:/root/work/myDockerFile.txt /mnt/work/
docker cp /mnt/work/myHostUbuntuFile.txt <容器 ID>:/root/work/
           

       在成功拉取鏡像并以背景方式啟動容器之後,用以下指令操作:

# 啟動
docker exec -it <容器 ID> /bin/bash

# 退出
exit

# 重新開機
docker start <容器 ID>
           

       在成功建立之後,先搭建基本的環境:

apt-get update # 更新apt-get

apt-get install vim # 安裝vim

vim /etc/apt/sources.list # 打開設定檔案

# 将下面的位址粘貼到檔案開頭,Ubuntu16.04
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

apt-get update # 更新apt-get

# 安裝必要的運作包
apt-get install ssh curl wget net-tools iputils-ping gcc g++ cmake make build-essential -y

# 安裝pip3與其他依賴
apt-get install python3-pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install --upgrade pip
pip install -r requirements.txt

# 安裝Anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh
bash Anaconda3-2019.07-Linux-x86_64.sh
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
source ~/.bashrc

# 安裝環境
apt-get install zip unzip
unzip 5voloy.zip
conda create -n yolov5 pip python=3.8
conda activate yolov5
           

繼續閱讀