前兩篇介紹了dockerfile
和docker-compose.yml
文件。本篇將介紹相應的命令。
docker
build
從dockerfile創建鏡像
docker build . -t name
search
從docker hub搜索鏡像
sudo docker search xxx
pull
從docker hub下載鏡像
sudo docker pull xxx
run
鏡像->容器; 運行容器
docker run -it -d -p "0.0.0.0:6666:2333" -h "host" -v ./data:/data --name="name" cmd
-it interactive & tty
-d 後臺運行
-p 端口映射 本地:容器
-v 掛載數據卷 本地:容器
映射多個端口或掛載多個數據卷的話 就用多個 -p / -v
-h 容器的hostname
–name 容器name
cmd 容器執行的命令
commit
容器->鏡像; 打包容器爲鏡像
docker commit container_name image_name
exec
在容器執行命令
和run差不多,run是從鏡像創建容器後執行命令,exec是對正在運行的容器執行命令
docker exec -it xxx /bin/bash
xxx 爲容器名/ID
-it interactive & tty
logs
docker logs xxx
xxx 爲容器名/ID
images
顯示鏡像信息
ps
顯示容器信息
docker ps -a
-a 全部容器,包括已經關閉的
container
容器管理命令
顯示容器信息
docker container ls -a
相當於
docker ps -a
詳細信息
docker inspect xxx
其他的沒啥
cp
本地與容器間複製文件
docker cp xxx:/home/dir ./
docker cp ./2333 xxx:/home/dir
和scp差不多 格式爲 容器名:路徑
不用加-r,默認遞歸複製文件夾下所有文件/文件夾
容器關閉後也可cp
start
開啓容器
kill
關掉容器
rm
刪除容器
rmi
刪除鏡像
login
登錄docker hub
push
上傳鏡像
docker-compose
docker-compose命令會根據compose文件中的信息對容器進行相關操作
默認的compose文件是docker-compose.yml
,也可以通過-f 指定compose文件:
docker-compose -f xxx.yml
所以,須在docker-compose.yml文件所在的文件目錄下執行docker-compose命令(如果使用默認compose文件)
創建鏡像
根據dockerfile創建鏡像,一般是更新dockerfile後使用
docker-compose build
啓動服務
docker-compose up -d
這條命令會啓動compose文件中services下定義的所有的容器
-d 選項可讓服務後臺運行
如果沒有build過鏡像,這條命令會先build鏡像,然後再部署容器
查看進程
docker-compose ps -a
-a 選項可顯示全部進程,包括正在運行的和已經關閉的
關閉容器
docker-compose kill
這條命令會終止compose文件中services下定義的所有的容器
刪除容器
docker-compose rm -f
這條命令會刪除compose文件中services下定義的所有的容器
-f 選項可強制刪除(無提示信息)
重啓服務
docker-compose restart
這條命令會重啓compose文件中services下定義的所有的容器
查看日誌
如果某個容器掛掉了,查看日誌是必不可少的
docker-compose logs xxx
xxx 爲 services中定義的服務名字
比如
version: "3"
services:
webapp:
image: redis:4
# ...
查看日誌的命令爲
docker-compose logs webapp
執行命令
docker-compose exec xxx [cmd]
在xxx容器中執行命令
命令必須是絕對路徑
e.g. 執行/bin/sh
docker-compose exec xxx /bin/sh
run
docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]
和docker的差不多