Docker
What
Docker是一個平臺,它提供哪些服務呢?任何一臺裝有Docker的機器上你都可以建立、發佈、運行你的應用程序。
docker vs vm
Why
省事、省時、省錢
- 用來取代虛擬機
- Docker可以在幾毫秒內爲您提供一個沙盒環境。
- Docker在一臺機器上起成百上千個獨立的容器,有助於模擬網絡,使網絡建模成爲一件輕而易舉的事情。
- 由於你可以將所有系統打包進你的Docker容器,所以可以移動工作,甚至脫網離線工作。
- Docker強迫你記錄軟件依賴,方便你其他地方佈局或者安裝軟件。
- 實現持續交付
- 減少調試開銷
docker 前後
開發階段、測試階段和版本發佈階段
How
網站
https://hub.docker.com/
http://www.dockerchina.cn
https://rancher.com/
鏡像Image 容器Container
鏡像
模板
容器
實例
指令
官方說明
https://docs.docker.com/engine/reference/commandline/docker/
鏡像製作 DockerFile
實操
軟件
Docker Desktop - Max Win
https://hub.docker.com/editions/community/docker-ce-desktop-windows
MobaXterm
https://mobaxterm.mobatek.net/download-home-edition.html
Notepad++
https://notepad-plus-plus.org/downloads/
課程使用image
- bind(DNS)
- nginx
- harbor / registry
- gitea / gitlab
- jenins
- rancher
- K3S / K8S
安裝 docker
- 系統
CentOS8 - 操作說明
Run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
參數 | 說明 |
---|---|
–name | 給容器命名 |
-d | 指定容器運行於後臺 |
-i | 打開STDIN,用於控制檯交互 |
-t | 分配tty設備,可以支持終端登錄 |
-u | 指定容器的用戶 |
-a | 登錄容器 |
-w | 指定容器的工作目錄 |
-e | 指定環境變量 |
-p | 指定容器暴露的端口 |
-h | 指定容器的主機名 |
-v | 給容器掛載存儲卷 |
–dns=[] | 指定容器的dns服務器 |
–privileged | 指定容器是否爲特權容器 |
–rm | 指定容器停止後自動刪除容器 |
# 拉取鏡像
docker pull centos
docker images
# 創建容器
docker run centos
docker ps -a
# 創建並執行
docker run -it centos
docker ps -a
# 後臺執行並命名
docker run -itd --name c8 centos
docker ps
# 容器內執行指令
docker exec -it c8 /bin/bash
# 創建容器並掛載宿主目錄
docker run -itd -v /home/tmp:/home/tmp c81
# 對宿主目錄操作
docker exec -it c81 /bin/bash
`cat "abc" > /home/tmp/a.txt`
容器退出
- 關閉退出
exit
- 不關閉退出
ctrl+P+Q
- 逐層推出(包括ssh)
ctrl+D
查看容器日誌
docker logs -t -f --tail 10 hfpy
參數 | 作用 |
---|---|
-t | 顯示時間 |
-f | 持續增加 |
–tail n | 顯示最後n條 |
查看容器進程
docker top hfpy
查看容器細節
docker inspect hfpy
重新進入未關閉的容器
docker attach hfpy
執行容器內指令
- 容器外執行取結果
格式:docker exec -t 容器 命令 參數
docker exec -t hfpy ls -l /tmp
- 進入容器=attach
格式:docker exec -it 容器 /bin/bash
docker exec -it hfpy /bin/bash
複製容器內文件到宿主
格式:docker cp 容器:文件路徑 宿主路徑
docker cp hfpy:/home/t.txt .