本文來自技術分享
1、容器生命週期java
docker run :建立一個新的容器並運行一個命令mysql
語法:nginx
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]sql
經常使用OPTIONS說明:docker
l -d: 後臺運行容器,並返回容器ID;緩存
l -i: 以交互模式運行容器,一般與 -t 同時使用;bash
l -P: 隨機端口映射,容器內部端口隨機映射到主機的高端口服務器
l -p: 指定端口映射,格式爲:主機(宿主)端口:容器端口網絡
l --name="nginx": 爲容器指定一個名稱;tcp
l --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;
l -e username="docker": 設置環境變量;
l --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;
l -m :設置容器使用內存最大值;
l --net="bridge": 指定容器的網絡鏈接類型,支持 bridge/host/none/container: 四種類型;
l --volume , -v: 綁定一個卷
示例:
docker run -d --name mqtt-broker
Bridge:橋接式網絡模式(默認),使用docker0網橋,同一網橋上的容器能夠相互通訊
Host: 開放式網絡模式,和宿主機共享網絡
None: 封閉式網絡模式,不爲容器配置網絡
Container:聯合掛載式網絡模式,和其餘容器共享網絡
docker start :啓動一個或多個已經被中止的容器
docker stop :中止一個運行中的容器
docker restart :重啓容器
語法:
docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:
docker restart mqtt-broker
docker kill :殺掉一個運行中的容器。
語法:
docker kill [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明:
l -s :向容器發送一個信號
示例:
docker kill -s KILL nginx
docker rm :刪除一個或多少容器
語法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明:
l -f :經過SIGKILL信號強制刪除一個運行中的容器
l -l :移除容器間的網絡鏈接,而非容器自己
l -v : 刪除與容器關聯的卷
示例:
docker rm nginx
docker exec :在運行的容器中執行命令
語法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
l -d :分離模式: 在後臺運行
l -i :保持STDIN 打開
l -t :分配一個僞終端
示例:
docker exec -it nginx /bin/bash
2、容器操做
docker ps : 列出容器
語法:
docker ps [OPTIONS]
OPTIONS說明:
l -a :顯示全部的容器,包括未運行的。
l --format :指定返回值的模板文件。
l -l :顯示最近建立的容器。
l -n :列出最近建立的n個容器。
示例:
docker ps -a
docker inspect : 獲取容器/鏡像的元數據。
語法:
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
示例:
docker inspect nginx
docker attach :鏈接到正在運行中的容器。
語法:
docker attach [OPTIONS] CONTAINER
要attach上去的容器必須正在運行,使用CTRL-C退出時會致使容器stop。
docker logs : 獲取容器的日誌
語法:
docker logs [OPTIONS] CONTAINER
OPTIONS說明:
l -f : 跟蹤日誌輸出
l --since :顯示某個開始時間的全部日誌
l -t : 顯示時間戳
l --tail :僅列出最新N條容器日誌
示例:
docker logs --since="2016-07-01" --tail=100 nginx docker logs -f --tail=100 nginx
docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公衆的端口。
語法:
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
示例:
# docker port mysql 3306/tcp -> 0.0.0.0:3306
3、容器rootfs命令
docker commit :從容器建立一個新的鏡像。
語法:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS說明:
l -a :提交的鏡像做者;
l -c :使用Dockerfile指令來建立鏡像;
l -m :提交時的說明文字;
l -p :在commit時,將容器暫停。
示例:
docker commit -a "test" -m "my mysql" a404c6c174a2 mymysql:v1
docker cp :用於容器與主機之間的數據拷貝。
語法:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS說明:
l -L :保持源目標中的連接
示例:
docker cp /www/ nginx:/www/ # 將宿主機/www/複製到nginx容器的/www/目錄 docker cp nginx:/www /tmp/ # 將nginx容器的/www/目錄複製到宿主機/tmp/
4、鏡像倉庫
docker login : 登錄到一個Docker鏡像倉庫,若是未指定鏡像倉庫地址,默認爲官方倉庫 Docker Hub
docker logout : 登出一個Docker鏡像倉庫,若是未指定鏡像倉庫地址,默認爲官方倉庫 Docker Hub
語法:
docker login [OPTIONS] [SERVER]
OPTIONS說明:
l -u :登錄的用戶名
l -p :登錄的密碼
示例:
docker login -u 用戶名 -p 密碼 docker logout
docker pull : 從鏡像倉庫中拉取或者更新指定鏡像
語法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS說明:
l -a :拉取全部 tagged 鏡像
示例:
docker pull -a mysql
docker push : 將本地的鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫
語法:
docker push [OPTIONS] NAME[:TAG]
OPTIONS說明:
l --disable-content-trust :忽略鏡像的校驗,默認開啓
示例:
docker push mymysql:v1
docker search : 從Docker Hub查找鏡像
語法:
docker search [OPTIONS] TERM
OPTIONS說明:
l --no-trunc :顯示完整的鏡像描述;
l -s :列出收藏數不小於指定值的鏡像。
示例:
docker search -s 10 --no-trunc java
5、本地鏡像管理
docker images : 列出本地鏡像。
語法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS說明:
l -a :列出本地全部的鏡像(含中間映像層,默認狀況下,過濾掉中間映像層);
l --no-trunc :顯示完整的鏡像信息;
l -q :只顯示鏡像ID。
示例:
docker images -a docker images nginx
docker rmi : 刪除本地一個或多少鏡像。
語法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
l -f :強制刪除;
示例:
docker rmi -f nginx
docker tag : 標記本地鏡像,將其納入某一倉庫。
語法:
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
示例:
docker tag
docker build 命令用於使用 Dockerfile 建立鏡像。
語法:
docker build [OPTIONS] PATH | URL | -
OPTIONS說明:
l --build-arg=[] :設置鏡像建立時的變量;
l -f :指定要使用的Dockerfile路徑;
l --no-cache :建立鏡像的過程不使用緩存;
l --tag, -t: 鏡像的名字及標籤,一般 name:tag 或者 name 格式;能夠在一次構建中爲一個鏡像設置多個標籤。
示例:
使用當前目錄的 Dockerfile 建立鏡像,標籤爲bopband/nginx:v1
docker build -t bopband/nginx:v1 .
docker history : 查看指定鏡像的建立歷史。
語法:
docker history [OPTIONS] IMAGE
示例:
docker history bopband/nginx:v1
docker save : 將指定鏡像保存成 tar 歸檔文件。
語法:
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
l -o :輸出到的文件。
示例:
docker save -o my_nginx_v1.tar bopband/nginx:v1
docker load : 導入使用 docker save 命令導出的鏡像。
語法:
docker load [OPTIONS]
OPTIONS說明:
l --input , -i : 指定導入的文件,代替 STDIN。
示例:
docker load < my_nginx_v1.tar docker load -i my_nginx_v1.tar
docker import : 從歸檔文件中建立鏡像。
語法:
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
示例:
docker import my_nginx_v1.tar bopband/nginx:v1