作者說到一個重點,因為K8s變化很快,建議到官網查資料@@ 看了很多網頁的資訊,只有這本書比較能一步步地跟著做(建議先看附錄九,安裝步驟)。
一、何謂Docker
二、Docker的運作機制
- 建議一個容器一個service。
三、使用Docker
- docker desktop要開啟 hyper-v(會與Vbox,VMware相衝突),但hyper-v只有專業版以上才有,所以微軟推出WSL2,家用版就可以用囉~
四、使用Docker建立容器
- docker run --name apa001 -d httpd
可以跑起來,但不知怎麼看@@原來是沒有指定 port,本機 : 容器
docker run --name apa002 -d -p 8080:80 httpd - container有很多,可以到官網查看看、說明文件。
- docker run --name mysql001 -dit -e MYSQL_ROOT_PASSWORD=myrootpass mysql
五、嘗試讓Docker結合多個容器來運行
- wordpress = wordpress容器( wordpress本體,apache, php ) + MYSQL容器
容器要互相通,要建立網路network
docker network create WP001net001 - 啟動MYSQL
docker run --name mysqlHost001 -dit --net=WP001net001 -e MYSQL_ROOT_PASSWORD=myrootpass -e MYSQL_DATABASE=WP001DB001 -e MYSQL_USER=WP001user001 -e MYSQL_PASSWORD=WP001userpass mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password - 啟動Wordpress docker run --name WP001 -dit --net=WP001net001 -p 8080:80 -e WORDPRESS_DB_HOST=mysqlHost001 -e WORDPRESS_DB_NAME=WP001DB001 -e WORDPRESS_DB_USER=WP001user001 -e WORDPRESS_DB_PASSWORD=WP001userpass wordpress
- 關閉要先關wordpress,再關mysql
六、學習容器的應用方式
- 容器與主機的檔案複製(主機位置 容器名稱 : /位置)
docker cp 複製源頭 目的地 - 繫結掛載,類似做捷徑,備份很容易
docker run -v 本機的資料夾:容器的資料夾 - 卷宗掛載,要先建立一個卷宗(放在哪裡不知道,由docker engine設定???),再用容器去連結,不容易備份,要用容器進行備份
docker volume create 卷宗名稱
docker run -v 卷宗名稱:容器的資料夾 - 建立映像檔一:先跑一個容器,然後commit就可以變成映像檔
docker commit 啟動的容器 要變映像檔的名字
docker commit apa022 apa_img001 - 建立映像檔二:用dockerfile建立映像檔,再用build
docker build -t httpd_img001 dockerfile的位置 - 搬運映像檔:容器(要先轉成映像檔 )與映像檔都無法直接複製或搬運,必須用save 轉成tar檔後,再搬運。
docker save -o 檔案名稱.tar 映像檔名稱 - 搬運完後再用load將映像檔轉入Docker中,好像會覆蓋同名的映像檔喔@@要注意
docker load -i 檔案名稱.tar - 改造容器,要進去容器內修改。使用 docker exec -it 容器 /bin/bash(進去已經啟動的容器)。
或 docker run --name 容器 -it -p 8080:80 httpd /bin/bash (這時httpd不會啟動喔) - docker registry 包含官方的docker hub(docker registry),也包含私人的registry(公司)。
每個registry裡面會有不同的repository(儲藏室),例如MYSQL放了5.0、6.2、7.4不同版本。
七、學習Docker Compose
- 跟dockerfile差異,dockerfile無法建立網路、卷宗。
- compose是寫YAML,up表示建立設定,down會刪除容器、網路,但保留卷宗與映像檔。
- Desktop有內建compose,linux要另外安裝python3、python3-pip、docker-compose。
sudo apt install -y python3 python3-pip
sudo pip3 install docker-compose - 新增資料夾,新增固定的名稱 docker-compose.yml,冒號後面一定要空一格,禁止用tab(用□表示,我是喜歡空兩格。接著這四大項的設定內容都要縮排,跟python一樣,都要一致)。
version:□□'3'
services:□□
□□□□mysql001:
□□□□wordpress001:
networks:□□
volumes:□□
八、學習Kubernetes
- docker compose可以建立、刪除容器,不能管理容器。
k8s可以管理、調度容器,想要關閉只需要設定容器數量為0。
管理員:要有kubectl
主要節點:k8s、CNI(container Networking Interface)、etcd(用來管理容器的資料庫)
工作節點:k8s、CNI、container engine - ubuntu用minikube,參考P313步驟,到官網copy code。
1.先安裝kubectl,2.再安裝minikube。
05/18 準備寫kubectl001,寫好了,( . kubectl001 ) 點,空一格 檔案名稱 05/25 寫minikbue,minikube - 若沒有一起呵成完成第八章,就要記得啟動minikube【minikube start】。
- 要寫 Service、Deployment( Pod、ReplicaSet 這兩個可以寫在deployment中)
- P283的網址,要先確定minikube的IP(感謝Joombuopre分享)【minikube ip】就可以用這個IP:30080瀏覽
九、附錄
- 有很多安裝步驟,可以先看大致上了解一下@@
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。