1. 程式人生 > >Docker 常用命令和使用例項

Docker 常用命令和使用例項

一. 常用命令

1. 啟動容器

docker run -p 8081:8080 gaha/test &

解釋:
& : 後臺啟動stardard
–p : 8081:8080 將本地的埠跟專案的繫結(8081是虛擬機器埠,8080是容器埠)
gaha/test : 映象地址

docker run --name test1111 -it gaha/test /bin/bash &

–name : 指定容器名字
-d :讓容器在後臺執行。(或者&)
-P :將容器內部使用的網路埠對映到我們使用的主機上。容器內部的 8080射到我們本地主機的 8081
-it : 以互動的模式執行
/bin/bash :表示進入到啟動的容器內

2. 檢視所有容器

docker ps

解釋:
-a : 包括執行的和關閉的
-o wide : 詳細資訊,包括執行在的節點

3. 檢視輸出

docker logs -f 1234(容器ID)

解釋:
-f : 使得日誌像 tail -f 一樣來輸出容器內部的標準輸出

4. 關閉容器

docker stop 1234

5. 刪除容器

docker rm 1234

6. 檢視映象

docker images

引數解釋:
-a : 本地加遠端的映象

解釋:
REPOSITORY:表示映象的倉庫源
TAG:映象的標籤

7. 下載映象

docker pull ubuntu:13.10(映象名)

8. 搜尋映象

docker search ubuntu

解釋:
NAME :映象倉庫源的名稱
DESCRIPTION :映象的描述
OFFICIAL :是否docker官方釋出

9. 刪除映象

docker rmi 1234(id或名字+tag)

10. 建立映象

  1. 建立DockerFile
vi Dockerfile
  1. 編寫
    事例1
FROM hub.yun.com.cn/official/jdk:8  
RUN /bin/echo "hero"
EXPOSE 222

解釋:
FROM ;使用的映象
RUN :指令告訴docker 在映象內執行命令,安裝了什麼。。。
EXPOSE :指令用來告訴Docker這個容器在執行時會監聽哪些埠,也就是這些埠與本機繫結

事例2

FROM hub.yun.com.cn/official/jdk:8     # 使用映象
VOLUME /var/hero/standard             #繫結容器內的路徑到本地
ADD standard.jar app.jar                  #拷貝standard .jar 到容器內並且命名為app.jar
RUN bash -c 'touch /app.jar'               # 以bash方式執行jar
EXPOSE 8080                           #容器對外開放埠
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","--spring.profiles.active=docker"]                                   # 啟動jar並且新增引數

解釋:
“-Djava.security.egd=file:/dev/./urandom” 防止一個容器內啟動多個例項 安全問題

  1. 進入DockerFile 目錄下
docker build -t hero/test:1.0  .

解釋:
. :表示Dockerfile 檔案所在目錄,可以指定Dockerfile 的絕對路徑
-t :指定映象名
名字後面的”: “:代表tag,也就是1.0

  1. 檢視映象
docker images 
  1. 使用映象建立容器
docker run –t –i gaha/test:dev &

11. 映象打tag

docker tag  1234(映象ID) gaha/test:dev

12. volume

一個數據卷是一個特別指定的目錄,資料卷可以在多個容器之間共享。也就是容器內的一個路徑跟容器外的一個路徑繫結在一起,資料共享。
詳細請參考深入理解Docker Volume
或者
Docker volume使用詳解及例項

假設VOLUME /var/hero/standard mount到 這個路徑/var/hero/standard
在專案中把日誌存到/var/hero/standard
使用 docker inspect 4ec476a7a055(容器ID)檢視容器詳細資訊
可以知道/var/hero/standard 關聯到的節點路徑
去這個路徑下就能檢視到日誌檔案

13. 檢視容器詳情

docker inspect  fa8315724f07(容器ID)
docker describe fa8315724f07(容器ID)