Docker 命令總結

安裝

下載鏡像

鏡像倉庫地址nginx

以安裝dotnet core 爲例,直接執行命令:docker pull microsoft/dotnet, 詳細解釋見連接:https://hub.docker.com/r/microsoft/dotnet/redis

images 操做

docker images :顯示全部鏡像文件
docker inspect [image-id/image-name] :顯示鏡像詳細信息
docker search [image-name] :搜索鏡像
docker rmi [image-id/image-name] :刪除鏡像
docker build -t [image-name] . :建立鏡像; 該命令要求Dockerfile在當前目錄下sql

docker images | grep "redis" : 查詢全部包含redis的鏡像docker

docker images | grep "redis" | awk '{print $3}' : 數據包含redis鏡像的第3列內容(鏡像id)bash

container操做

docker ps :查看當前運行的容器
docker ps -a :查看全部容器post

  • 容器標題含義:
    CONTAINER ID:容器的惟一表示ID
    IMAGE:建立容器時使用的鏡像
    COMMAND:容器最後運行的命令
    CREATED:建立容器的時間
    STATUS:容器狀態
    PORTS:對外開放的端口
    NAMES:容器名。能夠和容器ID同樣惟一標識容器,同一臺宿主機上不容許有同名容器存在,不然會衝突
  • docker start [container-id/container-name] :啓動容器
    docker stop [container-id/container-name] :中止容器
    docker rm [container-id/container-name] :刪除容器; 刪除前,要求先中止容器
  • docker stop $(docker ps -a -q) :中止全部容器(能夠使用一樣方式,操做全部容器,鏡像)
  • docker ps -a --format "{{.ID}}\t{{.Command}}" : 顯示指定列(一樣能夠適用於查看image)

kubernet

  • docker(kubernete_name)名稱查詢:kubectl get podsui

  • 進入docker(kubernete)內部:kubectl exec -it [kubernete_name] shurl

  • 建立容器例子:docker run --name=pgdemo_example -p 5000:5000 -d pgdemo
    --name:指定容器名稱
    -p:指定映射端口
    -d:指定容器 後臺運行
    [pgdemo] 爲鏡像名稱spa

log

docker logs -f -t --since="2018-01-01" --tail=10 [container-name] :查看日誌日誌

docker logs [OPTIONS] CONTAINER
Options:
--details 顯示更多的信息
-f, --follow 跟蹤實時日誌
--since string 顯示自某個timestamp以後的日誌,或相對時間,如42m(即42分鐘)
--tail string 從日誌末尾顯示多少行日誌, 默認是all
-t, --timestamps 顯示時間戳
--until string 顯示自某個timestamp以前的日誌,或相對時間,如42m(即42分鐘)

實例:

  • 查看指定時間後的日誌,只顯示最後10行
    $ docker logs -f -t --since="2018-08-01" --tail=10 container-id

  • 查看最近10分鐘的日誌
    $ docker logs --since 10m container-id

  • 查看某時間以後的日誌
    $ docker logs -t --since="2018-08-01T11:30:56" container-id

  • 查看某時間段日誌
    $ docker logs -t --since="2018-08-01T11:30:56" --until "2018-08-01T12:30:56" container-id

dockerfile

  • 一個Dotnet Core例子, Dockerfile文件內容以下:
    --基於 microsoft/dotnet:2.1-aspnetcore-runtime 構建鏡像 FROM microsoft/dotnet:2.1-aspnetcore-runtime

    --拷貝當前文件夾下全部文件到 docker容器中的publish文件夾中
    --格式: COPY [本地文件路徑] [docker中的路徑,名字隨意寫]
    COPY . /publish

    --設置工做目錄爲 /publish 文件夾,即容器啓動默認的文件夾 WORKDIR /publish

    --設置Docker容器對外暴露5000端口 EXPOSE 5000

    --運行程序 ENTRYPOINT ["dotnet", "HelloWorld.dll", "--server.urls", "http://*:5000"]

實例

postgresql

命令:
docker run -d --name [container-name] -v [docker-datapath]:[host-datapath] -p [host-port]:[docker-port] [image-name]

實例:
docker run -d --name postgresql_database -v /opt/data/postgresql:/var/lib/pgsql/data -p 5432:5432 [postgres]

nginx

問題分析

進入Docker實例內部

Docker Image實例自己是一個獨立運行的環境,能夠進入到實例內部,查看運行狀態等信息。

docker exec -it [container-name] bash :進入實例內部

相關文章
相關標籤/搜索