幫助命令
docker version
docker info
docker --help
鏡像命令
#列出本地鏡像
docker images [OPTIONS]
-a:列出本地所有的鏡像(包含中間映像層)
-q:只顯示鏡像id
--digests:顯示鏡像的摘要信息
--no-trunc:顯示完整的鏡像信息
#去dockerHub(https://hub.docker.com/)搜索鏡像
docker search [OPTIONS] {imageName}
#拉取鏡像
docker pull {imageName}:{tag}
#刪除一個鏡像
docker rmi -f {imageName}
#刪除多個鏡像
docker rmi -f {imageName1} {imageName2}
#刪除全部鏡像
docker rmi -f $(docker images -qa)
docker build -f {dockerFilePath} -t {newImageName}:{tag}
docker commit -m="Comment" -a="autherName" {containerId} {namespace}/{targetImageName}:{tag}
docker push
#查看鏡像歷史
docker history {imageName}
容器命令
#新建並啟動容器
docker run [OPTIONS] {imageName或imageId} [COMMAND] [ARG...]
--name:別名
--i:以交互模式運行容器,通常與-t同時使用
--t:為容器重新分配一個偽輸入終端,通常與-i同時使用
-d:后台運行容器,並返回容器id
-P:隨機端口映射
-p:指定端口映射
docker run --it -p {主機端口}:{容器端口} {imageName或imageId}
啟動docker中的tomcat后,訪問報錯404,原因是tomcat中默認的webapps目錄是空的,所需文件在webapps.dist目錄下,需要重命名目錄
#創建容器卷
docker run -it -v {localVolunmeDirectory}:{containerVolunmeDirectory} {imageName}
#創建只讀的容器卷(只有宿主機能正常讀寫,容器只能讀)
docker run -it -v {localVolunmeDirectory}:{containerVolunmeDirectory}:ro {imageName}
#列出當前所有正在運行的容器
docker ps [OPTIONS]
-a:列出當前所有正在運行以及歷史上運行過的容器
-l:顯示最近創建的容器
-n:顯示最近n個創建的容器
-q:靜默模式,只顯示容器id
--no-trunc:不截斷輸出
#停止容器方式退出容器
exit
#不停止容器方式退出
ctrl+p+q
#啟動容器
docker start {containerId或containerName}
#重啟容器
docker restart {containerId或containerName}
#正常停止容器
docker stop {containerId或containerName}
#強制關閉容器
docker kill {containerId或containerName}
#刪除已停止的容器
docker rm {containerId或containerName}
#強制刪除容器,即使容器正在運行
docker rm -f {containerId或containerName}
#一次性刪除多個容器
docker rm -f $(docker ps -aq)
docker ps -aq | xargs docker rm
#查看容器的日志
docker logs [OPTIONS] {containerId或containerName}
-t:顯示時間戳
-n:最后n行
#查看容器內運行的進程
docker top {containerId或containerName}
#查看容器內的細節
docker inspect {containerId或containerName}
#在宿主機中執行容器的命令
docker exec -it {containerId或containerName} {bashShell}
#進入容器,再執行命令,有時候執行該命令會卡住,不推薦使用
docker attach {containerId或containerName}
#拷貝容器內的文件到宿主機
docker cp {containerId或containerName}:{containerPath} {localPath}
DockerFile保留字指令
FORM:基礎鏡像
MAINTAINER:鏡像維護者的姓名和郵箱
RUN:容器構建時需要運行的命令
EXPOSE:容器對外暴露的端口
WORKDIR:指定創建容器后,終端默認進入的工作目錄
ENV:構建鏡像過程中設置環境變量
ADD:將宿主機目錄下的文件拷貝進鏡像且自動處理url和解壓tar壓縮包
COPY:將宿主機目錄下的文件拷貝進鏡像,COPY src dest,COPY ["src", "dest"]
VOLUME:容器數據卷,用於保存數據和持久化
CMD:指定一個容器啟動時要運行的命令,DockerFile中可以有多個CMD命令,但只有最后一個生效,CMD會被docker run之后的參數替換
ENTRYPOINT:指定一個容器啟動時要運行的命令,docker run之后的命令會追加,而不是替換
ONBUILD:假設son鏡像繼承自father鏡像且father鏡像的DockerFile中有ONBUILD {bashShell},當構建son鏡像的DockerFile時,會執行{bashShell}