一文搞定 Docker 容器技術與經常使用命令

簡介: Docker 是一個開源的應用容器引擎,基於 Go 語言開發,Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的系統。linux

Docker 簡介

Docker 是一個開源的應用容器引擎,基於 Go 語言開發,Docker 可讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,而後發佈到任何流行的系統。docker

Docker 是世界領先的軟件容器平臺,Docker 官方的口號是」調試你的應用,而不是調試環境「。在進行多人協做開發時,開發者可使用 Docker 來消除所謂「我這裏運行是好的」(works on my machine)問題,運維人員使用 Docker 來並行的運行和管理應用來得到更優計算密度,基於各自獨立的容器,不會由於環境緣由致使應用運行錯誤。ubuntu

以下圖所示,在工做當中,若是咱們面對這樣多的服務、多個服務器,以及多種環境,咱們應該如何處理呢?若是還繼續用傳統的方式打包部署,咱們會浪費多少時間?
image.pngwindows

因此在 Docker 橫空出世以前,應用打包一直是大部分研發團隊的痛點,在 Docker 出現後,它以更高效的利用系統資源、更高效的利用系統資源、一致的運行環境、持續交付和部署、更輕鬆的遷移、更輕鬆的維護和拓展,6大優勢迅速火了起來。centos

Docker 的三個核心概念

  • 鏡像(Image)
    是一個包含有文件系統的面向 Docker 引擎的只讀模板。任何應用程序運行都須要環境,而鏡像就是用來提供這種運行環境的。例如一個 Ubuntu 鏡像就是一個包含 Ubuntu 操做系統環境的模板。
  • 容器(Container)
    相似於一個輕量級的沙盒,能夠將其看做一個極簡的 Linux 系統環境(包括 root 權限、進程空間、用戶空間和網絡空間等),以及運行在其中的應用程序。Docker 引擎利用容器來運行、隔離各個應用。

容器是鏡像建立的應用實例,能夠建立、啓動、中止、刪除容器,各個容器之間是是相互隔離的,互不影響。bash

注意:鏡像自己是隻讀的,容器從鏡像啓動時,Docker 在鏡像的上層建立一個可寫層,鏡像自己不變。服務器

  • 倉庫(Repository)
    鏡像倉庫,是 Docker 用來集中存放鏡像文件的地方。

Docker 安裝

Docker 是開源的商業產品,有兩種版本:社區版(Community Edition,縮寫爲 CE)和企業版(Enterprise Edition,縮寫爲 EE)。企業版包含了一些收費服務,通常用不到。咱們下面將會演示 Docker CE 版本的使用方法。網絡

Docker 支持不少操做系統平臺,有你們經常使用的 Microsoft Windows 系列操做系統(Docker 不支持 Windows 10 家庭版系統),Linux 發行版和 MacOS 系統。app

安裝
choco install docker-for-windows
  • Linux 發行版 Ubuntu 系統安裝方法
    1.切換到管理員權限
su root

2.安裝必要的一些系統工具

apt-get update

apt-get -y install apt-transport-https ca-certificates curl \
software-properties-common

3.安裝 GPG 證書

curl -fsSL \
http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg \
| sudo apt-key add -

4.寫入軟件源信息

add-apt-repository "deb [arch=amd64] \
http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable"

5.更新並安裝 Docker-CE

apt-get -y update
apt-get -y install docker-ce
  • Linux 發行版 CentOS 系統安裝方法
    1.切換到管理員權限
su root

2.安裝必要的一些系統工具

yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加軟件源信息

yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.更新並安裝 Docker-CE

yum makecache fast
yum -y install docker-ce
  • macOS 操做系統安裝 Docker 方法
    macOS 上有兩種安裝 Docker 方式:

    • 第一種:訪問 Docker 網站下載 Docker Desktop 的 dmg 安裝包,下載地址:https://download.docker.com/mac/stable/Docker.dmg
    • 第二種:使用包管理工具方式來安裝 Docker,使用 Homebrew 工具安裝 Docker。(包管理工具需自行下載安裝)
brew cask install docker
Docker 經常使用操做
  • 啓動 Docker
systemctl start docker
  • 從新啓動 Docker
systemctl retart docker
  • 開機時自動啓動 Docker
bash systemctl enable docker ¨G2G bash systemctl status docker
Docker 加速器配置

咱們下載 Docker 鏡像的時候,默認會訪問 Docker 網站,而 Docker 網站是在國外部署的,距離比較遠下載速度特別慢。咱們能夠經過設置加速器的方式來加速 Docker 鏡像下載的速度。下面將描述一下使用加速器的步驟:

1.咱們這裏選擇的是阿里雲提供的 Docker 鏡像加速器服務,首先訪問阿里雲的鏡像倉庫(若是沒有阿里雲帳號則須要註冊):

https://cr.console.aliyun.com/

2.選擇「鏡像加速器「
image.png

3.根據我的的系統平臺,選擇運行 Docker 的 OS,並按照操做文檔的要求修改 Docker 配置文件,而後重啓 Docker 服務便可完成加速器的配置。
image.png

Docker經常使用命令

Docker 的經常使用命令通常分爲:鏡像管理、容器管理。

查看 Docker 版本

docker version
鏡像管理命令

下面使用 busybox 軟件做爲示例,busybox 軟件是一個集成了很是多最經常使用的 Linux 命令和工具的軟件集合。

  • 查看全部鏡像
docker images
  • REPOSITORY:鏡像來自哪一個倉庫
  • TAG:鏡像的標籤信息,版本之類的信息
  • IMAGE ID:鏡像建立時的id
  • CREATED:鏡像建立的時間
  • SIZE:鏡像文件大小
  • 下載軟件鏡像
docker pull busybox:latest

備註:latest 表示使用 busybox 軟件的最新版本,因此軟件默認下載都是 latest 版本。

  • 導出鏡像
docker save busybox > busybox.tar

備註:把 busybox 鏡像導出爲 busybox.tar 文件,能夠把 busybox.tar 文件複製到別的操做系統上使用,免除下載時網絡慢的問題。

  • 刪除鏡像
docker rmi busybox:latest

備註:鏡像通常都會根據版本打包,若是有下載一個軟件的多個版本就須要指定具體版本信息。如 busybox:1.26 就會刪除 busybox 軟件的 1.26 版本的鏡像,不會刪除latest 版本的鏡像。

  • 導入鏡像
docker load < busybox.tar

備註:使用導出命令導出的鏡像,能夠經過此命令導入到沒有下載此軟件的操做系統,方便網絡條件差的狀況使用。

  • 更改鏡像名
docker tag busybox:latest busybox:test

備註:busybox:latest原鏡像名,busybox:test要改爲的鏡像名

容器管理命令
  • 運行容器
docker run -d --name=busybox busybox:latest ping 114.114.114.114
  • run:run參數表明啓動容器
  • -d:之後臺daemon的方式運行
  • --name:指定一個容器的名字,此後操做都須要使用這個名字來定位容器。
  • busybox:latest:容器所使用的鏡像名字
  • ping 114.114.114.114:啓動容器執行的命令
  • 查看運行的容器
docker ps
  • 查看全部容器
docker ps -a
  • CONTAINER ID:容器啓動的id
  • IMAGE:使用哪一個鏡像啓動的容器
  • COMMAND:啓動容器的命令
  • CREATED:建立容器的時間
  • STATUS:容器啓動時間
  • PORTS:容器映射到宿主機的端口
  • NAMES:容器啓動的名字
  • 啓動容器
docker start busybox
  • 從新啓動容器
docker restart busybox
  • 中止容器
docker stop busybox
  • 殺死容器
docker kill busybox
  • 刪除運行中的容器
docker rm -f busybox
  • 執行容器內命令
docker exec -it busybox ls

備註:-it 交互終端

  • 複製容器內文件
docker cp busybox:/etc/hosts hosts
  • 查看容器日誌
docker logs -f busybox

以上,更多進階內容後續進一步探討。

相關文章
相關標籤/搜索