[微服務] Docker基礎(3) - 開始用Docker吧
複習Docker image
在開始前我們先複習一次image與container的關西
image其實就是file snapshot搭配Startup command,而這snapshot就由image提供方設計(目前這階段我們應該是還不需要考慮這些),Startup command則是告訴容器啟動時要使用那些command
可以看到上圖當容器啟動後,Docker會依照image切出與分配FS並且在Running process時執行你的Starup command
創建第一個Container
docker run
- docker run指令是由create和start組成
- docker create <image-id/image-name>
- docker start <image-id/image-name>
- 基本輸入格式
- docker run <image-id/image-name>
就可以看到自己第一個容器搂
hello-world
執行下方指令
docker run hello-world
就可以看到hello-world歡迎你進入docker世界
如果要將run拆解成create和start可以嘗試這樣輸入
docker create hello-world
你的顯示器會顯示此image的id,將你的id複製
docker start -a 上一行的image id
也會有一樣的效果
- -a 在這裡代表的告訴docker start指令要attach後面這個image id
busybox
busybox可以讓使用者練習對容器下終端機指令
- docker run busybox command-line
docker run busybox echo hi
docker ps
docker ps指令是讓使用者查看目前電腦上運行的docker容器有哪些
我們嘗試用busybox來做ps的示範,因為busybox在執行我們的終端機指令後就會自動關閉,所以我們這次給他一個需要持續執行的指令,以ping google.com來示範
docker run busybox ping google.com
開啟新的終端機輸入
docker ps
就可以看到我們剛剛的busybox container
docker log
可以讓你看到此容器產生的全部log
docker log <container-id>
docker stop / docker kill
- docker stop會軟性的關閉你的container容器,但是超過一定秒數後會執行docker kill強制關閉
- docker kill就是強制關掉你的容器
docker stop <container-id>
docker kill <container-id>
docker system prune
docker system prune指令會清掉機器上沒有再跑的container,節省空間
讓我們做點複雜的練習吧
接下來的練習我們會使用redis資料庫並且透過exec指令和redis作互動
下載redis image並且啟動她
docker run -d redis
終端機會回傳此container的container id記得複製下來
docker exec
接下來我們使用docker exec和剛剛的容器做互動
docker exec -it 容器id redis-cli
接下來就可以直接使用redis搂
其中的-i和t參數分別代表
- -i 是為了讓我們的temrinal對應到docker stdin
- -t 讓他是以整齊的格式輸出
我們當然也可以直接使用sh進入os再呼叫redis-cli
docker exec -it cotainer-id sh
redis-cli
也可以直接使用docker run在container結束後就直接進入os終端介面
docker run -it redis sh
總結
這篇文章主要是介紹一些基本的docker指令,只要會這些指令就可以開始你的docker之旅
留言
張貼留言