Docker基礎教程快速入門 Linux CentOS安裝與使用Docker容器

Docker 介紹

Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用接口。它是目前最流行的 Linux 容器解決方案。

Docker 將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。程序在這個虛擬容器裏運行,就好像在真實的物理機上運行一樣。有了 Docker,就不用擔心環境問題。

總體來說,Docker 的接口相當簡單,用戶可以方便地創建和使用容器,把自己的應用放入容器。容器還可以進行版本管理、複製、分享、修改,就像管理普通的代碼一樣。

點擊購買阿里云云服務器,建議買香港可以免備案,系統鏡像選擇CentOS7或者用自己現有服務器

CentOS Docker 安裝

Docker 支持以下的 64 位 CentOS 版本:CentOS 7、CentOS 8、更高版本

使用官方安裝腳本自動安裝

curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun

 直到安裝結束

設置 Docker 倉庫

安裝所需的軟件包。yum-utils 提供了 yum-config-manager ,並且 device mapper 存儲驅動程序需要 device-mapper-persistent-data 和 lvm2。

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

 使用以下命令來設置穩定的倉庫。選擇國內的阿里雲

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

安裝 Docker Engine-Community

sudo yum install docker-ce docker-ce-cli containerd.io

好了,到這裏安裝工作已完畢。

 

啓動 Docker

sudo systemctl start docker

通過運行 hello-world 映像來驗證是否正確安裝了 Docker Engine-Community 。

sudo docker run hello-world

使用Docker

docker run 命令來在容器內運行一個應用程序,輸出Hello world

docker run ubuntu:15.10 /bin/echo "Hello world"

各個參數解析:

  • docker: Docker 的二進制執行文件。

  • run: 與前面的 docker 組合來運行一個容器。

  • ubuntu:15.10 指定要運行的鏡像,Docker 首先從本地主機上查找鏡像是否存在,如果不存在,Docker 就會從鏡像倉庫 Docker Hub 下載公共鏡像。

  • /bin/echo "Hello world": 在啓動的容器裏執行的命令

以上命令完整的意思可以解釋爲:Docker 以 ubuntu15.10 鏡像創建一個新容器,然後在容器裏執行 bin/echo "Hello world",然後輸出結果。

運行交互式的容器

我們通過 docker 的兩個參數 -i -t,讓 docker 運行的容器實現"對話"的能力:

docker run -i -t ubuntu:15.10 /bin/bash

 

各個參數解析:

  • -t: 在新容器內指定一個僞終端或終端。

  • -i: 允許你對容器內的標準輸入 (STDIN) 進行交互。

注意第二行 root@8739b639f1b8:/# ,此時我們已進入一個 ubuntu15.10 系統的容器

我們嘗試在容器中運行命令 cat /proc/versionls分別查看當前系統的版本信息和當前目錄下的文件列表

使用exit退出容器

exit

啓動容器(後臺模式)

使用以下命令創建一個以進程方式運行的容器

注:加了 -d 參數默認不會進入容器,想要進入容器需要使用指令 docker exec(下面會介紹到)。

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

 在輸出中,我們沒有看到期望的 "hello world",而是一串長字符

1ab5e28733593adcbbc947185e9ecf0f4da8efa1328f6e0db4c2b1a324563bb9

這個長字符串叫做容器 ID,對每個容器來說都是唯一的,我們可以通過容器 ID 來查看對應的容器發生了什麼。

首先,我們需要確認容器有在運行,可以通過 docker ps 來查看:

docker ps

輸出詳情介紹

CONTAINER ID: 容器 ID,我的是1ab5e2873359

IMAGE: 使用的鏡像。

COMMAND: 啓動容器時運行的命令。

CREATED: 容器的創建時間。

STATUS: 容器狀態。

狀態有7種:

  • created(已創建)
  • restarting(重啓中)
  • running 或 Up(運行中)
  • removing(遷移中)
  • paused(暫停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

NAMES: 自動分配的容器名稱。

在宿主主機內使用 docker logs 容器ID 命令,查看容器內的標準輸出:

 docker logs 1ab5e2873359

進入容器

docker exec:推薦大家使用 docker exec 命令,因爲此退出容器終端,不會導致容器的停止。

docker exec -it 1ab5e2873359 /bin/bash

導出和導入容器

導出容器

如果要導出本地某個容器,可以使用 docker export 命令。

docker export 1ab5e2873359 > ubuntu.tar

導出容器 1ab5e2873359 快照到本地文件 ubuntu.tar。

導入容器快照

可以使用 docker import 從容器快照文件中再導入爲鏡像,以下實例將快照文件 ubuntu.tar 導入到鏡像 test/ubuntu:v1:

cat docker/ubuntu.tar | docker import - test/ubuntu:v1

此外,也可以通過指定 URL 或者某個目錄來導入,例如:

docker import http://example.com/exampleimage.tgz example/imagerepo

根據容器 ID 啓動、關閉、重啓

  • docker start:啓動一個或多個已經被停止的容器
  • docker stop:停止一個或多個運行中的容器
  • docker restart:重啓一個或多個容器

 

刪除容器

刪除容器使用 docker rm 命令:

docker rm -f 1ab5e2873359

卸載 Docker

刪除安裝包:

yum remove docker-ce

刪除鏡像、容器、配置文件等內容:

rm -rf /var/lib/docker

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章