# Docker ## Docker 架構 * ### Docker Hub * 存放Docker image的倉庫 * ### Docker image * 啟動container使用到的檔案 (一個Docker image可啟動多個Docker containers) * 來源: (1) 寫Docker file (2) 從網路上的Dockerhub上pull下來 * ### Docker container * 透過Docker image執行起來的process * ### Docker volume * 把資料寫入實體機器上 ## 啟動Docker * ### 下載docker image * 顯示local下載了哪些docker image `docker images` * ### 撰寫Docker file * 功用: 撰寫安裝軟件得指令,之後呼叫docker run,即可把該service呼叫起來 * 步驟: 1. 建立Docker file (1) `mkdir ${file name}` (2) `cd ${file name}` (3) `vi Dockerfile` (4) 指令: `FROM`:使用到的Docker image名稱 `MAINTAINER`:撰寫與維護此Dockerfile之人 `RUN`:+ Linux指令,執行安裝及設定此image需要的東西 `ENV`:設定環境變數 `CMD`:例:`CMD ["~/catalina.sh","run"]` 執行`docker run`指令時呼叫開啟sth `ADD`:把local之檔案複製到image裡(可順便解壓縮) 2. Build Docker image 在Docker file檔案同層之folder下輸入: `docker build -t mytomcat . --no-cache` (避免被cache) 3. 確認 `docker images` 4. 刪除Docker image `docker rmi ${image name}` * ### 進入Docker container裡面之terminal * `docker run -it ${repository} /bin/bash` * `docker ps -a` (在另一個terminal)確認container正常執行 * ### 執行Docker container * `docker run ${repository}` * 退出container (1) 停止container: `exit` (2) 退出但不停止 `ctrl+p` `ctrl+q` * Network 加入`-p ${localhost port}:${container port}` * 停止container執行 `docker stop ${container name}` * 刪除container `docker rm -f ${container name}` * ### Docker volume * `docker run -it -v ${實體主機資料}:${container裡面資料之路徑}`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up