docker實驗一

Docker 概述

  • Docker 是一個開源的應用容器引擎
  • 誕生於 2013 年初,基於 Go 語言實現, dotCloud 公司出品(後改名爲Docker Inc)
  • Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上。
  • 容器是完全使用沙箱機制,相互隔離
  • 容器性能開銷極低
  • Docker 從 17.03 版本之後分爲 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版)

docker架構:

  • 鏡像(Image):Docker 鏡像(Image),就相當於是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。
  • 容器(Container):鏡像(Image)和容器(Container)的關係,就像是面向對象程序設計中的類和對象一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啓動、停止、刪除、暫停等。
  • 倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。 

實驗0 基礎實驗

1.docker安裝實驗

(1)在本機ubuntu環境中安裝docker

系統版本:ubuntu14.04

步驟:

# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新並安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

注:上述命令下載文件時可能會下載不全,根據提示使用修復(--fix)下載,直到下載完全正確。 

驗證:

wuyi@ubuntu:~$ sudo docker version
[sudo] password for wuyi: 
Client:
 Version:           18.06.3-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        d7080c1
 Built:             Wed Feb 20 02:27:13 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.3-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       d7080c1
  Built:            Wed Feb 20 02:25:38 2019
  OS/Arch:          linux/amd64
  Experimental:     false
wuyi@ubuntu:~$ 

(2) docker源修改

將docker源配置爲阿里雲鏡像:

  1. 進入官網:https://dev.aliyun.com/
  2. 進行註冊賬戶並登錄
  3. 在產品與服務中找到容器鏡像服務,點擊進入
  4. 左欄中點擊鏡像加速器
  5. 按操作文檔進行配置
  6. 注:ubuntu14.04不支持systemctl,重啓docker使用service命令(sudo service docker start)

2.鏡像管理實驗

(1) 搜索mysql鏡像(... search + 關鍵詞 可以用來搜索鏡像)

$ sudo docker search ubuntu

(2) 下載搜索列表中的第一項

# 使用這條指令可以下載名爲ubuntu的鏡像
$ sudo docker pull ubuntu
# 下載 ubuntu的鏡像,且指定版本14.04
$ sudo docker pull ubuntu:14.04
# 從指定的鏡像源dl.dockerpool.com下載最新的Ubuntu鏡像
$ sudo docker pull dl.dockerpool.com:5000/ubuntu

(3) 使用 sudo docker images查看本地鏡像

(4) 使用tag命令,依次創建3個本地別名文件

$ sudo docker tag mysql mysql:1
$ sudo docker tag mysql mysql:2
$ sudo docker tag mysql mysql:3
$ sudo docker images

最後查看本地鏡像信息,體會REPOSITORY、TAG、IMAGE ID之間的變化

(5)使用rmi命令刪除 mysql:1 鏡像,再使用 images 查看變化

(6)使用rmi命令刪除 mysql    鏡像,再使用 images 查看變化

(7)使用rmi命令刪除 Image ID ,再使用 images 查看變化

(提示:強制刪除加 -f )

# 類似於
$ sudo docker rmi d72169616e20

 

(8)下載ubuntu鏡像,並使用inspect命令查看ubuntu鏡像的信息,先查看全部信息,再單獨查看DockerVersion信息(提示:sudo docker inspect -f {{".DockerVersion"}} ubuntu:1)

 3.容器管理實驗

1.體會容器的兩種創建並啓動方式

第一種 : create + run 運行容器

(1) 使用create命令由ubuntu鏡像創建一個容器(注意使用 -it 指令)

(2) 分別使用 sudo docker ps -a 和 sudo docker ps 查看本機容器狀態

(3) 使用start相關的命令啓動一個容器  

(4) 再分別使用 sudo docker ps -a 和 sudo docker ps 查看本機容器狀態

 

第二種:使用run直接運行一個容器

(5) 使用run直接由ubuntu鏡像創建一個容器,並使其在後臺以守護態運行

$ sudo docker run -idt ubuntu

(6) 再分別使用 sudo docker ps -a 和 sudo docker ps 查看本機容器狀態

 

2.進入處於運行態的容器

(7) 使用 exec 進入剛剛創建的容器

 

3.關閉處於Up狀態(即,啓動狀態)的容器

(8) 使用stop命令終止一個容器,針對NAME終止其中一個容器,針對CONTAINER ID 終止另一個容器

(9) 再分別使用 sudo docker ps -a 和 sudo docker ps 查看本機容器狀態

 

容器的刪除(體會刪除運行中容器以及不運行的容器)

(10)先啓動一個容器,注意NAMES與STATUS

(11)對於兩個不同狀態的容器分別執行刪除

回答問題:

1. 簡要談談你對鏡像,容器的理解.

答:利用面向對象的思想,鏡像相當於一個類,而容器是鏡像這個類的實例。

2. do docker run -idt ubuntu 命令中 idt三個字母分別代表的含義.

答:-i:開啓stdin

       -d:守護方式 daemon 在後臺運行 docker container

       -t:分配一個僞tty終端

3. sudo docker ps -a 與 sudo docker ps命令的區別?

答:有-a參數表示顯示所有的容器,無-a參數只顯示啓動的容器。

 

實驗1-數據管理實驗

  1. 在容器內創建一個數據卷
  2. 掛載主機目錄或者文件作爲數據卷
  3. 創建數據卷容器
  4. 在共享數據卷中創建一個文件
  5. 在其他的容器中查看被剛剛創建的文件 

 

實驗問答:

1. 簡述 touch 命令的作用

答:touch命令用於修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會建立一個新的文件。

2. 簡述 ls 命令的作用

答: ls命令用於顯示指定工作目錄下之內容(列出目前工作目錄所含之文件及子目錄)。

實驗2-網絡配置實驗

1. 將容器與主機的端口號相綁定(分別使用不同的方法)

2. 實現容器與容器的互聯,使用ping命令檢驗連通性

 

參考:https://shimo.im/docs/FnT8B0CdmlkiD1mO/read

 

 

 

 

 

 

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