Docker入門學習

1、docker核心組件

docker客戶端和服務端
docker鏡像
registry
docker容器

2、關鍵概念

docker以鏡像爲基礎,在鏡像的基礎上建立、運行容器,能夠簡單的理解爲容器是鏡像運行時的表現。

3、docker基本命令

  • 容器相關
一、docker run --name container_name -i -t ubuntu /bin/bash (建立一個交互式容器)
      docker run 命令指的是運行某一個鏡像,這裏指ubuntu鏡像
      --name 參數用於指定即將建立運行的容器的名稱(惟一)
      -i 參數指的是以鏡像運行的容器中的標準輸入是打開的
      -t 參數指的是爲建立的容器分配tty終端
      /bin/bash 命令指的是容器建立完畢啓動的命令    

二、docker start containerId/containerName
      從新啓動容器(docker重啓時,會沿用docker run命令時指定的參數來運行)

三、docker stop containerId/containerName
      中止容器

四、docker run --name daemon_dave -d ubuntu(守護式容器)
      -d 參數說明該容器在後臺運行

五、docker logs [options] containerId/containerName
      docker logs containerId/containerName:輸出此容器的log
      -f 參數 動態打印容器運行時的log日誌
      -tf 參數 給日誌添加時間
      --tail number 參數用於獲取日誌的最後幾行內容

六、docker top containerId/containerName
      查看容器內部運行的進程

七、docker exec [options] containerId/containerName [shell]
      docker exec:在容器內部額外啓動新進程
      -d: 後臺進程
      -i -t:交互式進程

八、docker run --restart=[param] ...
      --restart=always:不管容器退出碼是多少,都自動重啓容器
      --restart=on-failure:5:當退出碼是非0時,自動重啓5次
       
九、docker ps
      docker ps 命令顯示當前正在運行的容器
      docker ps -a 顯示全部容器
      docker ps -l 顯示最新建立的一個容器
      docker ps -l -q 顯示最新建立的一個容器的id

十、docker run -p/-P
      -p:
          8080:80 將容器內的80端口綁定到了本地宿主機的8080端口
          127.0.0.1:8080:80 將容器內的80端口綁定到了本地宿主機的127.0.0.1這個IP的8080端口
          127.0.0.1::80 將容器內的80端口綁定到了本地宿主機的127.0.0.1這個IP的一個隨機端口
      -P:
          將容器內的80端口對本地宿主機公開,而且綁定到宿主機的一個隨機端口上

十一、docker inspect containerId/containerName
      查看容器詳細信息

十二、docker port containerId/containerName
      查看容器端口映射狀況
  • 鏡像相關
一、docker images
      docker images:查找docker宿主機全部的鏡像,後面加鏡像名可查看指定鏡像的信息

二、docker search XXX
      用於查看XXX相關的鏡像
      鏡像通常存儲在鏡像倉庫中(用戶倉庫:用戶名/倉庫名),並打上標籤

三、docker commit
      docker commit:構建鏡像
      docker commit -m "A new custom image" -a "James Turnbull" [容器Id] [倉庫名/鏡像名:tag]
        -m:提交信息
        -a:提交人信息

四、基於dockerfile構建鏡像
      docker build -t="倉庫名/鏡像名:tag" .
      .:表明從當前目錄下查找Dockerfile,也能夠指定git倉庫

五、dockerfile命令
      CMD:
           指定容器要啓動時要運行的命令,一個dockerfile只有一個CMD命令生效,
           且若是docker run時指定了命令,會覆蓋dockerfile的CDM指定的命令。
      ENTRYPOINT:
           指定容易啓動時要運行的命令,通常不會被覆蓋,能夠經過docker run --entrypoint覆蓋
      WORKDIR:
            dockerfile後續指令的工做目錄
      EVN:
            ENV TARGET_DIR /opt/app:指定環境變量
      VOLUME:
             用來向基於鏡像建立的容器添加捲,
             讓咱們能夠將數據(如源代碼)、數據庫或者其餘內容添加到鏡像中而不是將這些內容提交到鏡像中,而且容許咱們在多個容器間共享這些內容
      ADD:
             用來將構建環境下的文件和目錄複製到鏡像中。
             ADD 源文件 目的文件位置
      COPY:
       ARG:
             用來定義能夠在docker build命令運行時傳遞給構建運行時的變量,咱們只須要在構建時使用--build-arg標誌便可

以上內容參考了《第一本Docker書》,若是有不正確的地方,歡迎指出git

相關文章
相關標籤/搜索