# Docker Container 是一種作業系統虛擬化的形式。與伺服器或機器虛擬化方法相比,Container 不包含作業系統映像。 這使它們更輕巧、更容易攜帶,而且例行成本也大幅降低。在較大型的應用程式部署中,可將多個 Container 部署為一或多個 Container 叢集。這類叢集可能由 Container Orchestrator 管理,例如 Kubernetes。 ## Continer vs VM 結構 ![image](https://hackmd.io/_uploads/B1OsJrFLT.png) ## 安裝佈署 * windows 可以用 WSL 安裝,目前 desktop 需收費 * Linux: CentOS, Ubuntu, Rokcy 皆支援 ## Command 學習 ### Docker 指令如下: ``` docker search 搜尋 Docker Image 有哪些的指令 docker pull 指 Docker Image 下載回 local docker images 顯示出在 local 下載了哪些 Docker Image docker run 使用 Docker Image 啟動執行 Docker Container docker ps 顯示了啟動了哪些的 Docker Container ``` ## image 基本操作 ### 抓取 images `docker pull alpine:latest ` `docker images ` `docker run alpine echo "hey001"` ### 執行 images `docker run alpine df` `docker run alpine ls /` `docker run alpine /bin/sh `docker run -it alpine /bin/sh ` `docker run -d -it alpine /bin/sh ` ### 基本的 羅列 ``` docker container ls docker container stop XXXXXXX docker container ls -a docker container rm XXXXXXX docker container ls -a docker images ``` ### 刪除 ``` docker rmi OOOOOOOOO docker images ``` ## Dockerfile 學習 ``` vi Dockerfile FROM alpine:latest ENTRYPOINT ["httpd", "-D", "FOREGROUND"] ``` ## Build images `docker build -t myimage .` `docker images ` `docker run -d -p 80:80 myimage` ``` echo $(docker-machine ip) (go to browser) ``` ## Dckckerer hub 存放自己客製 images ###登入 ckckerer hub ``` docker logout docker login ``` #### images `docker build -t uopsdod/myimage .` #### 的 images `docker images` #### 上 docker hub `docker push uopsdod/myimage ` #### 除 `docker container stop $(docker container ls -a -q) ` `docker system prune -y ` `docker rmi $(docker images -a -q)`