天天看點

Docker常用指令整理序言全局操作容器鏡像操作建立容器日志操作進入容器内部容期間的操作

序言

整理下常用的指令[email protected]

全局操作

#顯示目前docker的版本号

docker -v

容器鏡像操作

#檢視所有存在的驚喜那個

docker images

#删除容器,要删除鏡像必須要先删除容器

docker rm  id/tag

#删除鏡像

docer rmi id/tag

#搜尋指令還是很常用的,可以看到官方的和個人制作的鏡像,節省我們很多時間

docker search 鏡像名稱

建立容器

#建立鏡像的一個執行個體 -p指定端口映射 -d表示以守護線程運作 --name可以指定容器名稱

docker run  --name 容器名稱 -d -p 8000:8080 鏡像tag:version

#啟動一個存在的容器

docker start 容器名稱

#關閉一個運作中的容器

docker stop 容器名稱

#注意建立過得容器并不會消失,如果停用了可以使用

docker ps -a

#在啟動docker容器的時候通過參數 -e 加入環境變量

docker run -d --name test2 {鏡像名} -e REDIS_HOST=192.1.1.0

#容器内檔案映射到容器外,如下使用 -v 将/var/opt/mssql映射到容器外的/data路徑下

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=密碼" -u 0:0 -p 1433:1433 --name mssql -v /data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest

日志操作

#檢視日志

docker logs [OPTIONS] CONTAINER

  Options:

        --details        顯示更多的資訊

    -f, --follow         跟蹤實時日志

        --since string   顯示自某個timestamp之後的日志,或相對時間,如42m(即42分鐘)

        --tail string    從日志末尾顯示多少行日志, 預設是all

    -t, --timestamps     顯示時間戳

        --until string   顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鐘)

#檢視指定時間後的日志,隻顯示最後100行:

$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

#檢視最近30分鐘的日志:

$ docker logs --since 30m CONTAINER_ID

#檢視某時間之後的日志:

$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

檢視某時間段日志:

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

進入容器内部

# Docker内部

# /bin/bash  或者 /bin/sh

#/bin/sh與/bin/bash雖然大體上沒什麼差別,但仍存在不同的标準

#-it的說明如下所示

OPTIONS說明:

-d :分離模式: 在背景運作

-i :即使沒有附加也保持STDIN 打開

-t :配置設定一個僞終端

$ sudo docker exec -it 容器ID /bin/bash

容期間的操作

通過--link來連接配接目前容器與另一個已經存在容器,使他們能互相通信

文法 --link <container-name/container-id>:alias     

 container-name/container-id為源容器的container-name/container-id,alias為源容器在link下的别名   

如下的例子是kibana需要從elasticsearch擷取相關的索引故此需要通信

docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0