Docker 使用超詳細(入門級)

2020-09-28 09:03:17

本文是關於 Docker 的入門使用,若想進一步提升,歡迎學習Docker 使用超詳細 (精通級)

一、安裝Docker(Ubuntu)

幫助檔案:Docker 官方安裝檔案(Ubuntu)

1. 解除安裝舊的 Docker 版本:

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

2. 利用 Docker 倉庫安裝,更新 apt 並安裝需要的依賴庫,用於通過 HTTPS 來獲取倉庫:

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

3. 新增 Docker 的官方 GPG 金鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通過搜尋指紋的後8個字元,驗證您現在是否擁有帶有指紋的金鑰。

sudo apt-key fingerprint 0EBFCD88

4. 使用以下指令設定穩定版倉庫:

sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(lsb_release -cs) \
  stable"

5. 安裝最新版本的Docker Engine-Community 和 containerd(也可安裝指定版本)

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

6. 測試Docker 是否安裝成功

sudo docker run hello-world

二、Docker 映象常用命令

1. 顯示 Docker 的版本資訊:

docker version

2. 顯示 Docker 的系統資訊,包括映象和容器的數量:

docker info

3. 檢視本地主機上的所有映象:

docker images

REPOSITORY:映象的倉庫源
IMAGE ID:映象的ID
CREATED:映象建立的時間
SIZE:映象的大小
可選項:

-a # 列出所有的映象
-q # 只顯示映象的ID
-aq # 只顯示所有映象的ID

4. 搜尋映象:

docker search

如:

docker search mysql # 搜尋mysql映象
docker search mysql --filter=STARS=3000 # 搜尋 STARS 大於3000的 mysql 映象

5. 下載映象:

docker pull 映象名[:tag] # 不加 tag,預設下載最新版的 latest

如:

docker pull mysql:5.7 # 下載 mysql(5.7版本) 映象

6. 刪除映象:

docker rmi -f 映象ID # 刪除指定的映象
docker rmi -f 映象ID_1 映象ID_2 映象ID_3 # 刪除指定的多個映象
docker rmi -f $(docker images -aq) # 刪除全部的映象

三、Docker容器常用命令

有了映象才可以建立容器

1. 建立容器:

docker run [可選引數] image

如:

docker run -itd --name python_gfh python:3.6.8 /bin/bash

引數說明:

--name # 指定容器名字
-d # 後臺方式執行
-it # 使用互動方式執行,進入容器檢視內容
-p # 指定容器的埠
	-p ip:主機埠:容器埠
	-p 主機埠:容器埠 # 常用
	-p 容器埠
-P # 隨機指定埠

測試: 建立並進入容器:

docker run -it ubuntu:16.04 /bin/bash # 建立並進入容器 ubuntu

2. 從容器中退回宿主機:

exit # 直接退出並停止容器
ctrl + P + Q # 退出但不停止容器

3. 列出所有執行的容器:

docker ps # 列出當前正在執行的容器
docker ps -a # 列出當前正在執行的容器+歷史執行過的容器
docker ps -n=? # 列出最近建立的容器,?表示個數
docker ps -q # 只顯示容器編號

4. 刪除容器:

docker rm 容器ID # 刪除指定的容器,不能刪除正在執行的容器
docker rm -f 容器ID # 強制刪除

5. 啟動、關閉和重新啟動容器的操作:

docker start 容器ID # 啟動指定容器
docker restart 容器ID # 重新啟動指定容器
docker stop 容器ID # 停止當前正在執行的容器
docker kill 容器ID # 強制停止當前正在執行的容器

四、Docker容器常用命令

1. 檢視容器中程序資訊

docker top 容器ID # 檢視容器中程序資訊

2. 檢視容器後設資料

docker inspect 容器ID # 檢視容器中程序資訊

3. 進入正在執行的容器

方式一:進入容器後開啟一個新的終端,可以在裡面操作(常用)

docker exec -it 容器ID bashShell

方式二:進入容器正在執行的終端,不會啟動新的程序

docker attach 容器ID

4. 拷貝容器內檔案到宿主機上(在容器外執行)

docker cp 容器ID:容器內路徑 宿主機檔案路徑 # 容器ID換成容器名也可以

5. 拷貝宿主機的檔案到容器內(在容器外執行)

docker cp 宿主機檔案路徑 容器ID:容器內路徑 # 容器ID換成容器名也可以

五、部署 nginx Docker

1. 搜尋 nginx 的 Docker 映象(可以去Docker Hub搜尋)

docker search nginx

2. 下載 nginx Docker 映象

docker pull nginx # 預設下載latest

3. 執行測試

docker run -itd --name nginx_test -p 3344:80 nginx # 可通過宿主機的3344埠存取docker的80埠

在這裡插入圖片描述
部署成功!

六、Portainer

Portainer一個輕量級的 Docker 環境管理 UI。

docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v /Users/lee/dev/docker_file/portainer/data:/data docker.io/portainer/portainer

七、提交(commit)映象

Docker 映象都是唯讀的,當容器啟動時,一個新的可寫層被載入到映象的頂部。
命令:

docker commit -m="提交的描述資訊" -a="作者" 容器ID 目標映象名:[TAG]

如:1、啟動一個預設的nginx容器;
2、在該容器中做了部分修改;
3、將操作過的 nginx 容器通過 commit 提交為一個映象。

docker commit -m="nginx_vue" -a="fuhong.gao" a8a71b91e24c nginx_vue:1.0

博主水平有限,若發現文中存在問題,歡迎留言指正!

學習之路永無止境!