Docker及Docker-Compose的使用

摘自 https://www.jianshu.com/p/ca1623ac7723html

 

菜鳥Docker
阮一峯的Docker教程java

Docker是一個開源的容器引擎,它有助於更快地交付應用。方便快捷已是 Docker的最大優點,過去須要用數天乃至數週的任務,在Docker容器的處理下,只須要數秒就能完成。nginx

架構

 
Docker架構圖
  • Docker daemon( Docker守護進程):Docker daemon是一個運行在宿主機( DOCKER-HOST)的後臺進程。可經過 Docker客戶端與之通訊。
  • Client( Docker客戶端):Docker客戶端是 Docker的用戶界面,它能夠接受用戶命令和配置標識,並與 Docker daemon通訊。圖中, docker build等都是 Docker的相關命令。
  • Images( Docker鏡像):Docker鏡像是一個只讀模板,它包含建立 Docker容器的說明。它和系統安裝光盤有點像,使用系統安裝光盤能夠安裝系統,同理,使用Docker鏡像能夠運行 Docker鏡像中的程序。
  • Container(容器):容器是鏡像的可運行實例。鏡像和容器的關係有點相似於面向對象中,類和對象的關係。可經過 Docker API或者 CLI命令來啓停、移動、刪除容器。
  • Registry:Docker Registry是一個集中存儲與分發鏡像的服務。構建完 Docker鏡像後,就可在當前宿主機上運行。但若是想要在其餘機器上運行這個鏡像,就須要手動複製。此時可藉助Docker Registry來避免鏡像的手動複製。一個 Docker Registry可包含多個 Docker倉庫,每一個倉庫可包含多個鏡像標籤,每一個標籤對應一個 Docker鏡像。這跟 Maven的倉庫有點相似,若是把 Docker Registry比做Maven倉庫的話,那麼 Docker倉庫就可理解爲某jar包的路徑,而鏡像標籤則可理解爲jar包的版本號。Docker Registry可分爲公有Docker Registry和私有Docker Registry。 最經常使用的DockerRegistry莫過於官網的Docker Hub, 這也是默認的Docker Registry。 Docker Hub上存放着大量優秀的鏡像, 咱們可以使用Docker命令下載並使用。

安裝

按照菜鳥的步驟,使用yum安裝便可。git

經常使用命令

鏡像相關

  • docker search java:在Docker Hub(或阿里鏡像)倉庫中搜索關鍵字(如java)的鏡像
  • docker pull java:8:從倉庫中下載鏡像,若要指定版本,則要在冒號後指定
  • docker images:列出已經下載的鏡像
  • docker rmi java:刪除本地鏡像
  • docker build:構建鏡像

容器相關

  • docker run -d -p 91:80 nginx :在後臺運行nginx,若沒有鏡像則先下載,並將容器的80端口映射爲宿主機的91端口。
    • -d:後臺運行
    • -P:隨機端口映射
    • -p:指定端口映射
    • -net:網絡模式
  • docker ps:列出運行中的容器
  • docker ps -a :列出全部的容器
  • docker stop 容器id:中止容器
  • docker kill 容器id:強制中止容器
  • docker start 容器id:啓動已中止的容器
  • docker inspect 容器id:查看容器的全部信息
  • docker container logs 容器id:查看容器日誌
  • docker top 容器id:查看容器裏的進程
  • docker exec -it 容器id /bin/bash:進入容器
  • exit:退出容器
  • docker rm 容器id:刪除已中止的容器
  • docker rm -f 容器id:刪除正在運行的容器

全部命令

  • docker
  • docker COMMAND --help

構建鏡像

  1. 肯定鏡像模板:如java、nginx
  2. 新建Dockerfile文件
  3. 使用Dockerfile的指令完善Dockerfile的內容
  4. 在Dockerfile文件的所在路徑執行docker build -t imageName:tag .,-t指定鏡像名稱,末尾的點標識Dockerfile文件的路徑
  5. 執行docker run -d -p 92:80 imageName:tag便可

經常使用指令以下圖,直白用法點,官方介紹點擊
github

 
個性化指令解釋

 

備註:RUN命令在 image 文件的構建階段執行,執行結果都會打包進入 image 文件;CMD命令則是在容器啓動後執行。另外,一個 Dockerfile 能夠包含多個RUN命令,可是隻能有一個CMD命令。注意,指定了CMD命令之後,docker container run命令就不能附加命令了,不然它會覆蓋CMD命令。docker

Docker Compose

Docker Compose是 docker 提供的一個命令行工具,用來定義和運行由多個容器組成的應用。使用 compose,咱們能夠經過 YAML 文件聲明式的定義應用程序的各個服務,並由單個命令完成應用的建立和啓動。bash



做者:張東冬
連接:https://www.jianshu.com/p/ca1623ac7723
來源:簡書
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。網絡

相關文章
相關標籤/搜索