docker and docker-compose

Docker

What

Docker是一個平臺,它提供哪些服務呢?任何一臺裝有Docker的機器上你都可以建立、發佈、運行你的應用程序。

docker vs vm

Image [2]

cbb71961b936a1280d562d0d042d5432.png

Why

省事、省時、省錢

  1. 用來取代虛擬機
  2. Docker可以在幾毫秒內爲您提供一個沙盒環境。
  3. Docker在一臺機器上起成百上千個獨立的容器,有助於模擬網絡,使網絡建模成爲一件輕而易舉的事情。
  4. 由於你可以將所有系統打包進你的Docker容器,所以可以移動工作,甚至脫網離線工作。
  5. Docker強迫你記錄軟件依賴,方便你其他地方佈局或者安裝軟件。
  6. 實現持續交付
  7. 減少調試開銷
docker 前後

C:/Users/ADMINI~1/AppData/Local/Temp/2/enhtmlclip/Image(17).png

開發階段、測試階段和版本發佈階段

How

40a93901a086fba82619fc6439f53541.png

網站

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

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