序言
整理下常用的指令[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