1. 程式人生 > 實用技巧 >docker 預設映象修改-Ubuntu

docker 預設映象修改-Ubuntu

Docker在預設安裝之後,通過命令docker pull 拉取映象時,預設訪問docker hub上的映象,在國內網路環境下,下載時間較久,所以要配置國內映象倉庫。

修改方式如下:

第一步:新建或編輯daemon.json
vi /etc/docker/daemon.json
 
第二步:daemon.json中編輯如下
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
 
第三步:重啟docker
systemctl restart docker.service
 
第四步:執行docker info檢視是否修改成功
docker 
info

1.網易
http://hub-mirror.c.163.com
2.Docker中國區官方映象
https://registry.docker-cn.com
3.中國科技大學
https://docker.mirrors.ustc.edu.cn
4.阿里雲容器  服務
https://cr.console.aliyun.com/
首頁點選“建立我的容器映象”  得到一個專屬的映象加速地址,類似於“https://1234abcd.mirror.aliyuncs.com”

1.配置國內映象源

Docker在預設安裝之後,通過命令docker pull 拉取映象時,預設訪問docker hub上的映象,在國內網路環境下,下載時間較久,所以要配置國內映象倉庫。

修改方式如下:

  1. 第一步:新建或編輯daemon.json
  2. vi /etc/docker/daemon.json
  3. 第二步:daemon.json中編輯如下
  4. {
  5. "registry-mirrors": ["http://hub-mirror.c.163.com"]
  6. }
  7. 第三步:重啟docker
  8. systemctl restart docker.service
  9. 第四步:執行docker info檢視是否修改成功
  10. docker info

國內的加速地址如下:

  1. 1.網易
  2. http://hub-mirror.c.163.com
  3. 2.Docker中國區官方映象
  4. https://registry.docker-cn.com
  5. 3.中國科技大學
  6. https://docker.mirrors.ustc.edu.cn
  7. 4.阿里雲容器 服務
  8. https://cr.console.aliyun.com/
  9. 首頁點選“建立我的容器映象” 得到一個專屬的映象加速地址,類似於“https://1234abcd.mirror.aliyuncs.com”

2.常用命令

2.1幫助命令

  • docker version:顯示Docker的版本資訊;
  • docker info:顯示Docker系統資訊,包括映象和容器數;
  • docker --help:幫助命令

2.2映象命令

2.2.1本地映象管理

  • docker images:列出本地映象
  1. docker images [引數]
  2. 引數說明:
  3. -a:列出本地所有映象(含中間映像層)
  4. -q:只顯示映象ID
  • docker rmi:刪除本地映象
  1. docker rmi [引數] [映象名或映象名列表]
  2. 引數說明:
  3. -f:強制刪除
  4. 舉例:
  5. docker rmi -f tomcat hello-world(刪除tomcat和hello-world,不帶TAG預設為latest)
  6. docker rmi -f $(docker images -qa) 刪除所有映象

2.2.2遠端倉庫

  • docker search:從Docker Hub查詢映象
  1. docker search [引數] 映象名
  2. 引數說明:
  3. -s:列出收藏數不小於指定值的映象;
  4. --automated:只列出automated build型別的映象。
  5. 舉例:
  6. docker search -s 10 nginx
  • docker pull:從映象倉庫拉取或更新指定映象
  1. docker pull [引數] 映象名[:TAG]
  2. 引數說明:
  3. -a:拉取所有映象
  4. 舉例:
  5. docker pull nginx
  6. docker pull -a nginx (從Docker Hub下載REPOSITORY為nginx的所有映象)
  • 上傳映象

將本地映象上傳到阿里云為例。

  1. 1.配置阿里雲的映象加速器,前面已介紹;
  2. 2.命令列登入到阿里雲的doker倉庫,--username為阿里雲的使用者名稱
  3. docker login --username=houpengkun registry.cn-hangzhou.aliyuncs.com
  4. 3.為本地映象新增tag,houpk為名稱空間
  5. docker tag f4ec85e8298f registry.cn-hangzhou.aliyuncs.com/houpk/mynginx:0.1
  6. 4.push到docker倉庫
  7. docker push registry.cn-hangzhou.aliyuncs.com/houpk/mynginx:0.1
  8. 5.登入阿里雲檢視已上傳的映象列表:https://cr.console.aliyun.com/#/imageList

2.2.3容器操作命令

  • docker ps:列出正在執行的容器
  1. docker ps [引數]
  2. 引數說明:
  3. -a:顯示所有容器,包括未執行的
  4. -q:只顯示容器編號
  • docker run :建立一個新的容器並執行一個命令
  1. docker run [引數] 映象名/ID [命令] [命令引數...]
  2. 引數說明:
  3. -i:以互動模式執行容器,通常與 -t 同時使用;
  4. -t:為容器重新分配一個偽輸入終端;
  5. --name="my":為容器指定一個名稱;
  6. -p:指定埠對映,格式為:主機(宿主)埠:容器埠;
  7. -P:隨機埠對映,容器內部埠隨機對映到主機的高階口;
  8. -d:後臺執行容器;
  9. 舉例:
  10. docker run -it nginx:latest /bin/bash
  11. docker run -p 8080:8080 tomcat
  • 退出容器(以it的方式執行)
  1. 方式一:exit
  2. 退出docker,同時docker容器停止執行;
  3. 方式二:ctrl+p+q
  4. 退出docker,docker容器繼續執行。
  • docker start/stop/restart
  1. docker start 容器ID [容器ID...] : 啟動容器
  2. docker stop 容器ID [容器ID...] : 停止容器
  3. docker restart 容器ID [容器ID...] : 重啟容器
  4. 以上操作都要建立在容器已經建立的基礎上,也就是執行了docker run命令
  • docker exec:在執行的容器中執行命令
  1. docker exec [引數] 容器id 命令 [命令引數...]
  2. 引數說明:
  3. -d:在後臺執行;
  4. -i:互動式;
  5. -t:分配終端;
  6. 舉例:
  7. docker exec -it mynginx /bin/bash
  • docker kill:殺掉一個執行中的容器
  1. docker kill [引數] 容器 [容器...]
  2. 引數說明:
  3. -s:向容器傳送一個訊號
  4. 舉例:
  5. docker kill -s KILL mynginx
  • docker rm:刪除容器
  1. docker rm [引數] 容器 [容器...]
  2. 引數說明:
  3. -f:強制刪除
  4. 舉例:
  5. docker rm -f mynginx
  6. docker rm $(docker ps -aq)
  • docker logs:獲取容器的日誌
  1. docker logs [引數] 容器
  2. 引數說明:
  3. -t:顯示時間戳;
  4. -f:跟蹤日誌輸出;
  5. --tail:僅列出最新N條容器日誌
  6. 舉例:
  7. 跟蹤檢視容器mynginx的日誌輸出
  8. docker logs -f mynginx
  9. 檢視容器mynginx從2016年7月1日後的最新10條日誌
  10. docker logs --since="2016-07-01" --tail=10 mynginx
  • docker top :檢視容器中執行的程序資訊
  1. docker top 映象
  2. 舉例:
  3. docker top mynginx
  • docker cp :用於容器與主機之間的資料拷貝
  1. 將檔案從容器拷貝到宿主機
  2. docker cp 容器:源路徑 目標路徑
  3. 將檔案從宿主機拷貝到容器
  4. docker cp 源路徑 容器:目標路徑
  5. 舉例:
  6. 將主機/usr/abc目錄拷貝到容器96f7f14e99ab的/hou目錄下
  7. docker cp /usr/abc 96f7f14e99ab:/hou/
  8. 將主機/usr/abc目錄拷貝到容器96f7f14e99ab中,重新命名為hou
  9. docker cp /usr/abc 96f7f14e99ab:/hou
  10. 將容器96f7f14e99ab的/abc目錄拷貝到主機的/tmp目錄中
  11. docker cp 96f7f14e99ab:/abc /tmp/
  • docker commit :從容器建立一個新的映象
  1. docker commit [引數] 容器 [映象[:TAG]]
  2. 引數說明:
  3. -a:映象作者;
  4. -c:使用Dockerfile指令來建立映象;
  5. -m:提交時的說明文字;
  6. 舉例:
  7. docker commit -a "houpk" -m "create mynginx" a404c6c174a2 mynginx:v1
  8. 執行docker images可以檢視建立的映象。