# Docker 學習筆記 Day2 - 操作流程與基礎指令 # 執行範例 ## 複製練習專案檔案 練習專案程式碼:https://github.com/sixeyed/diamol  使用以下指令進行複製檔案 ``` git clone https://github.com/sixeyed/diamol.git ``` ## 執行 Hello World Docker 範例 ``` docker container run diamol/ch02-hello-diamol ``` 這邊我遇到這個問題  這邊代表要啟用WSL2,要在 Docker desktop 的 Setting -> Resources 把 Enable integration with additional distros: 這邊的 Ubuntu 選項打開, 然後按 Apply & restart  調整過後執行成功的畫面  # 容器是什麼? 容器(Container)是一種虛擬化技術,用於將應用程式及其依賴環境打包在一起,以確保應用程式可以在任何計算環境中一致地運行。容器利用操作系統的虛擬化功能,提供輕量級、便攜且獨立的運行環境。 ## 容器的優點 1. **輕量化**:容器與傳統虛擬機相比,更加輕量,不需要啟動一個完整的操作系統,因此啟動速度快,占用資源少。 2. **可移植性**:容器打包了應用程式及其所有依賴,確保應用程式在開發、測試和生產環境中運行一致。 3. **隔離性**:容器之間相互隔離,確保一個容器內的問題不會影響其他容器,提升應用程式的安全性和穩定性。 4. **高效性**:容器利用操作系統的共享資源功能,比虛擬機更加高效,適合高密度部署。 # 透過 Docker 互動模式執行容器 ``` docker container run --interactive --tty diamol/base ``` - `docker container run`: 告訴 Docker 執行一個容器。 - `--interactive` 或 `-i`: 表示在容器中啟動互動模式,使得可以與容器中的應用進行互動。 - `--tty` 或 `-t`: 分配一個 pseudo-TTY(虛擬終端),這樣就可以在容器內進行命令行操作。 - `diamol/base`: 是要運行的 Docker 映像的名稱。在這個例子中,指定了一個名為 `diamol/base` 的映像。  > 執行後對連接到容器中的終端對話視窗 # 在容器中託管 (host) 一個網站 ``` docker container run --detach --publish 8088:80 diamol/ch02-hello-diamol-web ``` - `--detach` 或 `-d`: 表示在背景運行容器,即使容器啟動後,終端仍然可用。 - `--publish 8088:80` 或 `-p 8088:80`: 將容器的端口 80 映射到主機的端口 8088。這樣,當您訪問主機的 8088 端口時,流量將被轉發到容器的 80 端口。 - `diamol/ch02-hello-diamol-web`: 是要運行的 Docker 映像的名稱。在這個例子中,指定了一個名為 `diamol/ch02-hello-diamol-web` 的映像。 若不確定是否有這個映像檔可以到 https://hub.docker.com/ 查詢  >這邊可以發現 diamol/ch02-hello-diamol-web 跟書本範例上的名稱不太一樣  成功執行結果  點選畫面中的 8088:80 可以看到網頁結果  >http://localhost:8088/ # Docker 基本指令 **`docker run`**: 執行一個容器。 **`docker build`**: 使用 Dockerfile 構建一個新的映像。 **`docker pull`**: 從 Docker 鏡像倉庫下載一個映像。 **`docker push`**: 將一個映像推送到 Docker 鏡像倉庫。 **`docker start`**: 啟動一個停止的容器。 **`docker stop`**: 停止正在運行的容器。 **`docker restart`**: 重啟一個容器。 **`docker rm`**: 刪除一個或多個容器。 **`docker rmi`**: 刪除一個或多個映像。 **`docker ps`**: 列出正在運行的容器。 **`docker ps -a`**: 列出所有的容器,包括停止的容器。 **`docker images`**: 列出本地的所有映像。 **`docker exec`**: 在正在運行的容器中執行命令。 **`docker logs`**: 查看容器的日誌。 **`docker inspect`**: 查看容器或映像的詳細信息。 **`docker-compose`**: 使用 Docker Compose 管理多容器應用程序。 這些是 Docker 中的一些基本指令,用於管理容器、映像和其他相關資源5。 ## 結尾 以上就是第二天的練習內容,今天實際執行了Hello World的範例跟host一個網站、另外還有一些Docker 基本指令,如果有任何問題或需要進一步的幫助,歡迎在留言區提出。 ###### tags: `更新上部落格`
×
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