docker 學習–02 常用命令
文章目錄
- docker 學習--02 常用命令
- 1. 幫助啟動類命令
- 1.1啟動docker
- 1.2 停止docker
- 1.3 重啟docker
- 1.4 查看docker
- 1.5 設置開機自啟
- 1.6 查看docker概要信息
- 1.7 查看docker總體幫助文檔
- 1.8 查看docker命令幫助文檔
- 2. 鏡像命令
- 2.1 列出本地主機上有的鏡像
- 2.2 查詢鏡像庫
- 2.3 從遠程庫拉取鏡像
- 2.4 查看鏡像/容器/數據卷所占的空間(使用時注意自己是否有權限)
- 2.5 刪除本地鏡像
- 2.6 創建新的鏡像
- 2.7 通過Dcokerfile構建鏡像
- 3容器命令
- 3.1 新建啟動容器
- 3.2 查看容器 大小
- 3.3 退出容器
- 3.4 進入正在運行的容器并以命令行交互
- 3.5 啟動已停止運行的容器
- 3.6 重啟容器
- 3.7 停止容器
- 3.8 強制停止容器
- 3.9 刪除已停止的容器
- 3.10 查看容器日志
- 3.11 查看容器內運行的進程
- 3.12 查看容器內部細節
- 3.13 從容器內拷貝文件到主機上
- 3.14 導入和導出容器
- 3.15 容器數據卷掛載 運行一個帶有容器卷存儲功能的容器實例
- 3.16 容器數據卷繼承
- 3.17 查看容器資源占用情況
- 4 docker 網絡命令
- 4.1 查看網絡
- 4.2 創建網絡
- 4.3 查看網絡源數據
- 4.4 刪除網絡
- 5.Docker-compose容器 命令
1. 幫助啟動類命令
1.1啟動docker
systemctl start docker
1.2 停止docker
systemctl stop docker
1.3 重啟docker
systemctl restart docker
1.4 查看docker
systemctl status docker
1.5 設置開機自啟
systemctl enable docker
1.6 查看docker概要信息
docker info
1.7 查看docker總體幫助文檔
docker --help
1.8 查看docker命令幫助文檔
docker 命令 --helpexample:
docker run --help
2. 鏡像命令
2.1 列出本地主機上有的鏡像
docker images [OPTIONS]常用參數:
-a :列出所有的鏡像 (含歷史映像層)
-q :只顯示鏡像IDexample:
docker images -a
docker images -q
docker images -aq
docker images php #查找鏡像名為php的鏡像
//REPOSITORY:表示鏡像的倉庫源
//TAG:鏡像的標簽版本號
//IMAGE ID:鏡像ID
//CREATED:鏡像創建時間
//SIZE:鏡像大小
2.2 查詢鏡像庫
docker search [OPTIONS] 鏡像名字常用參數:
--limit nu #只輸出查到的前nu條記錄example:
docker search php
docker search --limit 10 php
//NAME:鏡像名稱
//DISCRIPTION:鏡像說明
//STARTS:點贊數
//OFFICAL:是否是官方認可的
//AUTOMATED:是否自動構建
2.3 從遠程庫拉取鏡像
docker pull 鏡像名字[:TAG]example:
docker pull php:7.2
docker pull php # 沒有指定版本即拉取最新版
2.4 查看鏡像/容器/數據卷所占的空間(使用時注意自己是否有權限)
//檢查Docker鏡像的磁盤空間
docker system df
//查該命令將顯示所有正在運行的Docker容器的磁盤使用情況
docker ps -s
//檢查Docker容器的詳細磁盤使用情況
//該命令將顯示指定Docker容器的詳細磁盤使用情況,包括容器的各個層的大小。
docker inspect | grep -i "size"
2.5 刪除本地鏡像
//刪除單個
docker rmi 鏡像ID #刪除鏡像,如果此時鏡像上面有容器正在運行,會報錯無法刪除
docker rmi -f 鏡像ID #強制(forced)刪除鏡像
//刪除多個
docker rmi -f 鏡像名1:TAG 鏡像名2:TAG
//刪除全部(慎用)
docker rmi -f $(docker images -qa)
#首先docker images -qa會列舉本地所有的鏡像的ID,然后作為一個集合送入rmi一個個刪除
2.6 創建新的鏡像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要創建的目標鏡像名:[標簽名]
2.7 通過Dcokerfile構建鏡像
Dockerfile是使用Docker構建鏡像的一種常見方式,它是一個文本文件,包含了構建鏡像所需的命令和指令 格式如下
//Docker?le常見命令:
//FROM image_name:tag 聲明基礎鏡像
//MAINTAINER user_name 聲明鏡像的作者
//ENV key value 設置環境變量 (可以寫多條)
//RUN command 編譯鏡像時運行的腳本(可以寫多條)
//CMD 設置容器的啟動命令
//ENTRYPOINT 設置容器的入口程序
//ADD source_dir/?le dest_dir/?le 將宿主機的文件復制到鏡像內,如果是一個壓縮文件,將會在復制后自動解壓。支持URL路徑下載源文件,但下載方式不能自動解壓。
//COPY source_dir/?le dest_dir/?le 和ADD相似,將宿主機的文件復制到鏡像內,但是如果有壓縮文件并不能解壓。不支持URL路徑下載。
//WORKDIR path_dir 設置工作目錄
//ARG 設置編譯鏡像時加入的參數
//VOLUMN 設置容器的掛載卷//示例 #(1)建立工作目錄mkdir /opt/apachecd /opt/apache?#(2)準備Dockerfile文件vim Dockerfile#基于的基礎鏡像FROM centos:7#維護鏡像的用戶信息MAINTAINER this is apache image <zy>#鏡像操作指令安裝apache軟件RUN yum -y install httpd#開啟80端口EXPOSE 80#復制網站首頁文件ADD index.html /var/www/html/#指定啟動容器時第一個運行的命令,前臺運行apache//方法一:#將執行腳本復制到鏡像中ADD run.sh /run.shRUN chmod 755 /run.sh#啟動容器時執行腳本CMD ["/run.sh"]?//方法二:ENTRYPOINT ["/usr/sbin/apachectl"]CMD ["-D", "FOREGROUND"] #FOREGROUND前臺運行#默認情況下apache是在后臺運行需要-D指定FOREGROUND表示前臺運行否則執行完第一條命令會停止鏡像??#(3)準備執行腳本。使用方法一的情況下需要準備執行腳本,使用方法二可跳過此步驟。vim run.sh#!/bin/bash#清理httpd的緩存rm -rf /run/httpd/*#指定為前臺運行/usr/sbin/apachectl -D FOREGROUND#因為Docker容器僅在它的1號進程(PID為1)運行時,會保持運行。如果1號進程退出了,Docker容器也就退出了。?#(4)準備網站頁面echo "this is apache web" > index.html?#(5)生成鏡像(構建鏡像)docker build -t httpd:centos . #注意別忘了末尾有"."?#(6)使用新鏡像運行容器docker run -d -p 6666:80 httpd:centos #指定映射端口1314?#使用宿主機IP和1314端口,測試網頁訪問http://IP:6666/
3容器命令
3.1 新建啟動容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]常用參數:
--name=NAME #為容器指定名字為NAME,不使用的話系統自動為容器命名
-d: 后臺運行容器并返回容器ID,也即啟動守護式容器(后臺運行);-i:以交互模式運行容器,通常與 -t 同時使用;
-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
也即啟動交互式容器(前臺有偽終端,等待交互,一般連用,即-it);-P: 隨機端口映射,大寫P
-p: 指定端口映射,小寫pexample:以ubuntu為例,啟動后要交互先聲明交互模式,其次交互得需要一個終端,因此參數為-it
docker run -it ubuntu /bin/bash指定名稱
docker run -it --name=myubuntu ubuntu /bin/bash
3.2 查看容器 大小
docker ps [OPTIONS]常用參數:
-a :列出當前所有正在運行的容器+歷史上運行過的
-l :顯示最近創建的容器。
-n nu:顯示最近nu個創建的容器。
-q :靜默模式,只顯示容器編號
3.3 退出容器
//1.run進去容器,exit退出,容器停止
exit
//2.run進去容器,ctrl+p+q退出,容器不停止
3.4 進入正在運行的容器并以命令行交互
//exec 是在容器中打開新的終端,并且可以啟動新的進程。用exit退出,不會導致容器的停止。
//attach 直接進入容器啟動命令的終端,不會啟動新的進程。用exit退出,會導致容器的停止。
docker exec -it 容器ID/容器名稱 bashShell
docker attach 容器ID
3.5 啟動已停止運行的容器
docker start 容器ID或者容器名
3.6 重啟容器
docker restart 容器ID或者容器名
3.7 停止容器
docker stop 容器ID或者容器名
3.8 強制停止容器
docker kill 容器ID或容器名
3.9 刪除已停止的容器
#刪除一個
docker rm 容器ID
docker rm -f 容器ID #強制刪除#刪除多個
docker rm -f $(docker ps -a -q)
或
docker ps -a -q | xargs docker rm
3.10 查看容器日志
docker logs 容器ID
3.11 查看容器內運行的進程
docker top 容器ID
3.12 查看容器內部細節
docker inspect 容器ID
3.13 從容器內拷貝文件到主機上
docker cp 容器ID:容器內路徑 目的主機路徑
3.14 導入和導出容器
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 鏡像用戶/鏡像名:鏡像版本號
3.15 容器數據卷掛載 運行一個帶有容器卷存儲功能的容器實例
docker run -it --privileged=true -v /宿主機絕對路徑目錄:/容器內目錄:[OPTION] 鏡像名OPTION:
rw 可讀可寫(read + write)
ro 容器實例內部被限制,只能讀取不能寫,僅讀(read only)
3.16 容器數據卷繼承
docker run -it --privileged=true --volumes-from 父類 --name u2 ubuntuexample:
# 新創建u3容器繼承u2容器的數據卷掛載,此時u2就算stop也不影響u3
docker run -it --privileged=true --volumes-from u2 --name u3 ubuntu
3.17 查看容器資源占用情況
docker stats [OPTIONS] [CONTAINER...]OPTIONS:
--all , -a :顯示所有的容器,包括未運行的。
--format :指定返回值的模板文件。
--no-stream :展示當前狀態就直接退出了,不再實時更新。
--no-trunc :不截斷輸出。
example:
docker stats
docker stats mynginx # 容器名
docker stats af7928654200 # 容器ID//CONTAINER ID 與 NAME: 容器 ID 與名稱。
//CPU % 與 MEM %: 容器使用的 CPU 和內存的百分比。
//MEM USAGE / LIMIT: 容器正在使用的總內存,以及允許使用的內存總量。
//NET I/O: 容器通過其網絡接口發送和接收的數據量。
//BLOCK I/O: 容器從主機上的塊設備讀取和寫入的數據量。
//PIDs: 容器創建的進程或線程數。
4 docker 網絡命令
4.1 查看網絡
docker network ls
4.2 創建網絡
docker network create xxx網絡名字
4.3 查看網絡源數據
docker network inspect XXX網絡名字
4.4 刪除網絡
docker network rm XXX網絡名字
5.Docker-compose容器 命令
docker-compose -h # 查看幫助
docker-compose up # 啟動所有docker-compose服務
docker-compose up -d # 啟動所有docker-compose服務并后臺運行
docker-compose down # 停止并刪除容器、網絡、卷、鏡像。
docker-compose exec yml里面的服務id # 進入容器實例內部
docker-compose exec docker-compose.yml文件中寫的服務id /bin/bash
docker-compose ps # 展示當前docker-compose編排過的運行的所有容器
docker-compose top # 展示當前docker-compose編排過的容器進程docker-compose logs yml里面的服務id # 查看容器輸出日志
docker-compose config # 檢查配置
docker-compose config -q # 檢查配置,有問題才有輸出
docker-compose restart # 重啟服務
docker-compose start # 啟動服務
docker-compose stop # 停止服務