iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
自我挑戰組

DevOps的下克上之旅( ° ∀ ° )ノ゙系列 第 9

Day 9 : Docker 基本操作 Container 篇

  • 分享至 

  • xImage
  •  

建立Container

把Image比喻做Class則Container就是Object,Container就是實際Docker上的貨櫃,裝載一個一個的Application。

承接昨天的文章,我們已經建立好了一個appache image。我們看看如何docker 有哪些重要指令:

  • docker ps -a 查看目前所有container (不論有無運行)
  • docker rm -fv <Container Id> 刪除container,-f是強制刪除正在運行的container (不然一般要先停止container),-v 是刪除這個container的volume
  • docker inspect <Container Id> 查看Container詳細資訊
  • docker logs <Container Id> 查看Container執行log
  • docker start <Container Id> 啟動Container
  • docker stop <Container Id> 停止Container
  • docker restart <Container Id> 重新啟動Container
  • docker run <OPTIONS> <ImageName>:<tag> 建立新的Container

建立新的container有很多重要的參數,可以參考這這裡,我在下面寫一些重要的參數

  • -d 背景執行
  • -it 可以用terminal交互
  • -w <Inside_dir> 指定工作目錄
  • -v <Outside_dir>:<Inside_dir> 指定volume位置
  • -p <Outside_port>:<Inside_port> 指定開放port
  • --name <Name> 指令Container名稱 (不指定就是Container隨便給)

舉個例子,開啟上一篇的apache服務,port外部8080映射內部80,將container取名為Web_APP
docker run -d -it -p 8080:80 --name Web_APP httpd:2.4

https://ithelp.ithome.com.tw/upload/images/20210911/20119044kE7VfDX9S0.png

打開你的瀏覽器,輸入http://localhost:8080,可以發現電腦的8080 port正運行默認的Apache !!! It works !!! 太神奇啦,我們電腦沒有安裝任何Web Server居然也能運行 !!!

進入Container

可以把Container當作是一個獨立運行的簡化系統,所以也可以進去裡面進行操作。

  • docker exec -it <Container ID> bash 進入運行中的Container

當然也有一些重要參數

  • -u root 用root身分進入

進入container後默認會在Container的workdir內。你可以改裡面的檔案,不過默認是沒有vim、nano的,透過一下指令安裝:

apt-get install
apt-get install vim

以剛剛的apache container,網頁會在/usr/local/apache2/htdocs/index.html,進入修改成<h1>Hello IT BAN</h1>,ctrl+F5重新整理http://localhost:8080

https://ithelp.ithome.com.tw/upload/images/20210911/20119044Xmn30hAwtZ.png

當然實際上不用這麼麻煩要進入裡面修改程式,之後文章教你怎麼內外部檔案映射。

將container輸出成image

我們可以將修改好的container輸出成image,讓其他人使用,imageName必須全部小寫。

  • docker commit <Container ID> <imageName>

https://ithelp.ithome.com.tw/upload/images/20210911/20119044UjXQApSxc2.png

如上圖,下一次別人使用你的image後就會發現內容被修改過了。


上一篇
Day 8 : Docker 基本操作 Image 篇
下一篇
Day 10 : Docker基本操作 Volume篇
系列文
DevOps的下克上之旅( ° ∀ ° )ノ゙30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言