docker 強調隔離性
一、鏡像常用命令(紅色常用)
1、docker images 查看本地鏡像
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS說明:
-
-a :列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層);
- -q :只顯示鏡像ID。
-
--digests :顯示鏡像的摘要信息;
-
--no-trunc :顯示完整的鏡像信息;
-
-f :顯示滿足條件的鏡像;
-
--format :指定返回值的模板文件;
2、docker search : 從Docker Hub查找鏡像
docker search [OPTIONS] TERM
OPTIONS說明:
- -s :列出收藏數不小於指定值的鏡像。
-
--automated :只列出 automated build類型的鏡像;
-
--no-trunc :顯示完整的鏡像描述;
從Docker Hub查找所有鏡像名包含java,並且收藏數大於10的鏡像
3、docker pull : 從鏡像倉庫中拉取或者更新指定鏡像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS說明:
-
-a :拉取所有 tagged 鏡像
-
--disable-content-trust :忽略鏡像的校驗,默認開啟
#docker pull redis等於一下命令,latest是最新的版本,也可以指定某個版本號
docker pull redis:latest
4、docker rmi : 刪除本地一個或多少鏡像。
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
-
-f :強制刪除;
-
--no-prune :不移除該鏡像的過程鏡像,默認移除;
二、容器常用命令
1、docker run :創建一個新的容器並運行一個命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明:
- -d: 后台運行容器,並返回容器ID;
- --name="nginx-lb": 為容器指定一個名稱;
- -p: 指定端口映射,格式為:主機(宿主)端口:容器端口
- --volume , -v: 綁定一個卷
- -i: 以交互模式運行容器,通常與 -t 同時使用;
-
-a stdin: 指定標准輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
-
-P: 隨機端口映射,容器內部端口隨機映射到主機的高端口
-
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
-
--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;
-
--dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;
-
-h "mars": 指定容器的hostname;
-
-e username="ritchie": 設置環境變量;
-
--env-file=[]: 從指定文件讀入環境變量;
- --env key=value 添加配置變量
-
--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;
-
-m :設置容器使用內存最大值;
-
--net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container:<name|id> 四種類型;
-
--link=[]: 添加鏈接到另一個容器;
-
--expose=[]: 開放一個端口或一組端口;
2、docker ps 查看當前運行容器
3、docker exec :在運行的容器中執行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
- -i :即使沒有附加也保持STDIN 打開
- -t :分配一個偽終端
-
-d :分離模式: 在后台運行
4、docker start/stop/restart (docker 啟動、停止、重啟)
docker kill CONTAINER 強制停止
5、退出容器 exit
6、刪除container
docker rm 鏡像名稱或者容器id(container)
批量刪除 docker rm -f | $(docker ps -a -q)和docker ps -a -q | xargs docker rm
7、docker logs : 獲取容器的日志
docker logs [OPTIONS] CONTAINER
OPTIONS說明:
-
-f : 跟蹤日志輸出
-
-t : 顯示時間戳
-
--tail :僅列出最新N條容器日志
- --since :顯示某個開始時間的所有日志
8、docker top :查看容器中運行的進程信息,支持 ps 命令參數。
查看所有運行容器的進程信息。
for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done
9、docker inspect : 獲取容器/鏡像的元數據。
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS說明:
-
-f :指定返回值的模板文件。
-
-s :顯示總的文件大小。
-
--type :為指定類型返回JSON。
查看當前容器分配的ip
10 、docker cp :用於容器與主機之間的數據拷貝。
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS說明:
-
-L :保持源目標中的鏈接
實例
將主機/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下。
docker cp /www/runoob 96f7f14e99ab:/www/
將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中。
docker cp 96f7f14e99ab:/www /tmp/
三、DockerFile
1、docker build 命令用於使用 Dockerfile 創建鏡像。
docker build [OPTIONS] PATH | URL | -
OPTIONS說明:
-
--build-arg=[] :設置鏡像創建時的變量;
-
--cpu-shares :設置 cpu 使用權重;
-
--cpu-period :限制 CPU CFS周期;
-
--cpu-quota :限制 CPU CFS配額;
-
--cpuset-cpus :指定使用的CPU id;
-
--cpuset-mems :指定使用的內存 id;
-
--disable-content-trust :忽略校驗,默認開啟;
-
-f :指定要使用的Dockerfile路徑;
-
--force-rm :設置鏡像過程中刪除中間容器;
-
--isolation :使用容器隔離技術;
-
--label=[] :設置鏡像使用的元數據;
-
-m :設置內存最大值;
-
--memory-swap :設置Swap的最大值為內存+swap,"-1"表示不限swap;
-
--no-cache :創建鏡像的過程不使用緩存;
-
--pull :嘗試去更新鏡像的新版本;
-
--quiet, -q :安靜模式,成功后只輸出鏡像 ID;
-
--rm :設置鏡像成功后刪除中間容器;
-
--shm-size :設置/dev/shm的大小,默認值是64M;
-
--ulimit :Ulimit配置。
-
--tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
-
--network: 默認 default。在構建期間設置RUN指令的網絡模式
實例
使用當前目錄的 Dockerfile 創建鏡像,標簽為 runoob/ubuntu:v1。
docker build -t runoob/ubuntu:v1 .
使用URL github.com/creack/docker-firefox 的 Dockerfile 創建鏡像。
docker build github.com/creack/docker-firefox
也可以通過 -f Dockerfile 文件的位置:
$ docker build -f /path/to/a/Dockerfile .
你必須知道的Dockerfile
四、簡單實戰
Docker(部署常見應用):Docker安裝MySql完整教程、實操
Docker(部署常見應用):RabbitMQ安裝docker版 /權限管理命令