1.Docker概念
a.定義:Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源
b.意義:Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化
c.版本:Docker 從 17.03 版本之后分為 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了
d.作用:
1)提供一次性的環境:比如,本地測試他人的軟件、持續集成的時候提供單元測試和構建的環境
2)提供彈性的雲服務:因為 Docker 容器可以隨開隨關,很適合動態擴容和縮容
3)組建微服務架構:通過多個容器,一台機器可以跑多個服務,因此在本機就可以模擬出微服務架構
2.安裝Docker(Win7)
a.訪問 http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 下載最新版 DockerToolbox,並安裝
注:若已安裝Git,則不用再選擇Git組件安裝。
b.雙擊 Docker QuickStart 圖標來啟動 Docker Toolbox 終端
注:若Docker未檢測到Git安裝目錄,則需要選擇 Git 的 bin 目錄下的 bash.exe 文件。
c.若出現 boot2docker.iso 一直無法下載的情況
1)訪問 https://github.com/boot2docker/boot2docker/releases/ 手動下載最新版的 boot2docker.iso
2)將下好的 boot2docker.iso 復制到 C:\Users\Administrator\.docker\machine\cache 下
3)雙擊 Docker QuickStart 啟動 Docker Toolbox 終端
d.執行命令 docker version 驗證是否安裝成功
#查看Docker版本 $ docker version
3.Docker 容器使用
a.image定義:image 文件可以看作是容器的模板。Docker 把應用程序及其依賴,打包在 image 文件里面,並根據 image 文件生成容器的實例。同一個 image 文件,可以生成多個同時運行的容器實例。
b.查找鏡像:訪問 https://hub.docker.com/ 查找可用鏡像
c.基本指令:
1)列出本地主機上的鏡像
# 列出本機的所有 image 文件。 $ docker image ls $ docker images
·REPOSITORY:表示鏡像的倉庫源
·TAG:鏡像的標簽,代表這個倉庫源的不同個版本
·IMAGE ID:鏡像ID
·CREATED:鏡像創建時間
·SIZE:鏡像大小
2)刪除本地主機上的鏡像
# 刪除 image 文件 $ docker image rm ubuntu:20.04 $ docker rmi ubuntu:20.04
3)下載鏡像到本地
#拉取 image 文件到本地 $ docker pull ubuntu:20.04
4)根據鏡像啟動容器
#根據 image 啟動容器 $ docker run -it ubuntu:20.04 /bin/bash
·-i: 交互式操作
·-t: 終端
·ubuntu:20.04:這是指用 ubuntu 20.04 版本鏡像為基礎來啟動容器
·/bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash
5)查看所有的容器
#查看正在運行的容器 $ docker ps #查看所有容器,包括未運行的 $ docker ps -a
·CONTAINER ID: 容器 ID。
·IMAGE: 使用的鏡像。
·COMMAND: 啟動容器時運行的命令。
·CREATED: 容器的創建時間。
·STATUS: 容器狀態。
·狀態有7種: created(已創建) restarting(重啟中) running(運行中) removing(遷移中) paused(暫停) exited(停止) dead(死亡)
·PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
·NAMES: 自動分配的容器名稱。
6)啟動一個已停止的容器
#啟動一個已停止的容器 $ docker start f69dbd3c27c4
7)停止一個容器
#停止一個容器 $ docker stop f69dbd3c27c4
8)重啟一個容器
#重啟一個容器 $ docker restart f69dbd3c27c4
9)后台啟動運行一個
#后台啟動運行一個容器 $ docker run -itd --name ubuntu-test ubuntu:20.04 /bin/bash
10)進入容器
#進入容器(如果從這個容器退出,會導致容器的停止) $ docker attach 1e560fca3906 #進入容器(如果從這個容器退出,不會導致容器的停止)(推薦) $ docker exec -it 243c32535da7 /bin/bash
11)刪除容器
#刪除容器 $ docker rm -f 1e560fca3906
12)導出容器
#導出容器 $ docker export a8bf89afcbb6 > ./ubuntu.tar
13)導入容器快照(導成鏡像 image)
#導入容器快照 $ cat ./ubuntu.tar | docker import - test/ubuntu:v1 #導入容器快照("./ubuntu.tar"可為路徑,也可為url) $ docker import ./ubuntu.tar test/ubuntu:v1
14)更新鏡像(提交容器副本成鏡像 image)
#提交容器副本成鏡像 $ docker commit -m="this is content for commiting" -a="this is author" d66cef6d68bf runoob/ubuntu:v2
·-m:提交的描述信息
·-a:指定鏡像作者
·d66cef6d68bf:容器 ID
·runoob/ubuntu:v2:指定要創建的目標鏡像名
4.參考文檔:
https://www.runoob.com/docker/windows-docker-install.html
http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html