摘要:上一篇簡介常用命令與實踐一六鏡像操作獲取鏡像下載鏡像到本地上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像。
【上一篇:Docker簡介、常用命令與實踐(一)】 六、Docker鏡像操作 6.1 獲取鏡像(下載鏡像到本地)
Docker Hub?上有大量的高質量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像。
從 Docker 鏡像倉庫獲取鏡像的命令是?docker pull。其命令格式為:
docker pull [選項] [Docker Registry 地址[:端口號]/]倉庫名[:標簽]
docker中拉取指定版本的鏡像比如:
docker pull mongo:3.2.4 dockre pull redis:3.2
具體的選項可以通過?docker pull --help
6.2 列出本地鏡像要想列出已經下載下來的鏡像,可以使用docker image ls或docker images命令。
6.3 刪除本地鏡像如果要刪除本地的鏡像,可以使用?docker image rm?命令,其格式為:
$ docker image rm [選項] <鏡像1> [<鏡像2> ...]七、Docker容器操作 7.1 說在前面
/bin/bash是linux的命令行工具,類似于window的cmd進入dos系統。
7.2 查看容器docker ps #查看啟動的容器 docker ps -a #查看所有容器,包含沒有啟動的容器7.3 啟動容器
????啟動容器有兩種方式,一種是基于鏡像新建一個容器并啟動,另外一個是將在終止狀態(stopped)的容器重新啟動。
????因為 Docker 的容器實在太輕量級了,很多時候用戶都是隨時刪除和新創建容器。
語法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
COMMAND: 容器啟動后進入容器中要執行的命令.
OPTIONS:(常用選項)
-d: 讓 Docker 在后臺運行而不是直接把執行命令的結果輸出在當前宿主機下 -t:?選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上,? -i:?則讓容器的標準輸入保持打開。 -name:為容器命名 -v: 創建數據卷 -p: 綁定端口7.3.1 基于鏡像新建一個容器并啟動
docker run
docker run命令有兩個參數,一個是鏡像名,一個是要在鏡像中運行的命令。
例如:
docker run -p 5000:5000 –name web training/webapp7.3.2 后臺運行
????更多的時候,需要讓 Docker 在后臺運行而不是直接把執行命令的結果輸出在當前宿主機下。此時,可以通過添加 -d 參數來實現。
$ docker run -d CONTAINER [CONTAINER...]
例如:
docker run –d –p 5000:5000 training/webapp7.3.3 交互運行
啟動一個 bash 終端,允許用戶進行交互。
$ docker run -it CONTAINER [CONTAINER...] /bin/bash
-t:選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上,?
-i:?則讓容器的標準輸入保持打開。
在交互模式下,用戶可以通過所創建的終端來輸入linux命令
例如:創建centos容器并且進入centos容器中
docker run -it centos /bin/bash7.4 終止容器
$ docker stop CONTAINER [CONTAINER...]
例如:
docker run –d –p 5000:5000 training/webapp7.5 啟動一個停止的容器
$ docker start CONTAINER [CONTAINER...]
例如:
docker stop web7.6 重啟容器
$ docker restart CONTAINER [CONTAINER...]
例如:
docker restart web7.7 刪除容器
$ docker rm CONTAINER [CONTAINER...]
例如:
docker rm web7.8 獲取容器的輸出信息
$ docker logs CONTAINER [CONTAINER...]
例如:
docker logs web7.9 進入容器
docker exec :在運行的容器中執行命令
語法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
-d :分離模式: 在后臺運行-i :即使沒有附加也保持STDIN 打開
-t :分配一個偽終端
$ docker exec –it CONTAINER /bin/bash
例如:
docker exec –it web7.10 主機和容器間拷貝 7.10.1.容器拷貝到主機
docker cp ed0f8bb24f3e:/opt/webapp/app.py d:/www
ed0f8bb24f3e: 容器id
/opt/webapp/app.py: 容器中的文件
d:/www: 主機文件夾
docker cp d:/www/文件 ed0f8bb24f3e:/opt/webapp/7.11 給鏡像打上標簽(tag)
tag的作用主要有兩點:一是為鏡像起一個容易理解的名字,二是可以通過docker tag來重新指定鏡像的倉庫,這樣在push時自動提交到倉庫。
將同一IMAGE_ID的所有tag,合并為一個新的
# docker tag 195eb90b5349 seanlook/ubuntu:rm_test
新建一個tag,保留舊的那條記錄
# docker tag Registry/Repos:Tag New_Registry/New_Repos:New_Tag八、數據卷 8.1 什么是數據卷
數據卷?是一個可供一個或多個容器使用的特殊目錄,可以繞過聯合文件系統(UFS),為一個或多個容器提供訪問。數據卷設計的目的在于對數據的持久化,它完全獨立于容器的生命周期,因此Docker不會在刪除容器時刪除其掛載的數據卷,也不會存在類似垃圾收集的機制。
數據卷提供很多有用的特性:
數據卷?可以在容器之間共享和重用
對數據卷的修改會立馬生效
對數據卷的更新,不會影響鏡像
數據卷默認會一直存在,即使容器被刪除
注意:數據卷的使用,類似于Linux下對目錄或文件進行mount,鏡像中的被指定為掛載點的目錄中的文件會隱藏掉,能顯示看的是掛載的數據卷。
8.2 為什么要使用數據卷將本地主機中的代碼運行在docker容器中。
8.3 掛載數據卷的前提授權本地磁盤
8.4 掛載一個主機目錄作為數據卷 8.4.1 第一種掛起一個數據卷運行一個nginx容器 ,-v 掛起一個卷,nginx用來訪問網頁的地址 , -d 以守護進程來運行,--name 給一個名字
docker run -d --name nginx -v /usr/share/nginx/html/ nginx
檢查容器的運行狀態
docker inspect nginx
對index.html文件做一些改動
echo "hello docker" > index.html8.4.2 第二種通過本地目錄掛載到容器里面的數據卷中去
docker run -p 8090:80 -d -v $PWD/html:/usr/share/nginx/html nginx docker run -d -v d:/www/webapp:/opt/webapp training/webapp8.4.3 第三種創建一個僅僅提供數據的容器,把這個容器當做volume掛載到其它容器里面去
# -v 表示的是volume(數據卷) --name 名字 nginx 是這個容器的基礎鏡像 docker create -v $PWD/data:/usr/share/nginx/html --name data_container nginx
運行一個新的容器,把上面提供數據的容器當做數據卷掛載到當前的容器中運行,-it表示交互的方式運行,會直接進入到這個容器中
docker run -it --volumes-from data_container nginx /bin/bash root@772cbe131d01:/usr/share/nginx/html# echo "Hello Nginx&Docker" > index.html
退出容器查看data目錄:
九、常見疑問Docker的容器是以鏡像來創建的,鏡像是不是一個類似操作系統的環境?
是的,你可以將Docker理解為一個輕量化的虛擬機,至于我們經常說的什么Tomcat鏡像、MySQL鏡像之類的,只是這個輕量化的虛擬機中安裝了相應的軟件。鏡像的名字也就說明了鏡像的功能。
是不是到正式環境上還要安裝Docker,然后把應用部署在其中?
是的,構建Docker鏡像、運行Docker容器,都需要安裝Docker,但這是一勞永逸的,因為我們使用的是安裝了各種各樣功能軟件的Docker鏡像和Docker容器。
參考教程:Docker之編程環境應用
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27576.html
摘要:獲取阿里云加速器地址進入登錄阿里云進入后臺配置加速器點擊后就會重啟并應用配置的鏡像地址了檢查加速器是否生效配置加速器之后,如果拉取鏡像仍然十分緩慢,請手動檢查加速器配置是否生效,在命令行執行,如果從結果中看到了如下內容,說明配置成功。 一、為什么要使用Docker以及與虛擬機的區別? 1.1 為什么要使用Docker Docker的思想來自于集裝箱。集裝箱解決了什么問題?在一艘大船上,...
摘要:此刻的后手指依舊飛速地敲打鍵盤,絲毫沒有要停不下來意思。閱讀本期技術周刊,你不光能弄明白什么是,使用的意義何在,還將被傳授秘籍,以達的境界。周刊篩選的每篇內容,是作者的獨到見解,踩坑總結和經驗分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,聽到后排動感十足的清脆鍵盤響,我就能猜到公司程序員定...
摘要:以下為幾個常用的指令依賴鏡像所有都必須以命令開始,表示其依賴的鏡像。的端口不使用公有端口。與命令使用數組語法。推薦阿里云,畢竟有錢,穩定。參數表示后臺守護進程運行容器。執行,運行應用。 docker 即容器 一些概念 Docker Registry Docker 遠程鏡像倉庫 DockerHub DaoCloud / Aliyun Docker Images Docker Imag...
閱讀 2563·2023-04-26 01:44
閱讀 2571·2021-09-10 10:50
閱讀 1419·2019-08-30 15:56
閱讀 2276·2019-08-30 15:44
閱讀 520·2019-08-29 11:14
閱讀 3425·2019-08-26 11:56
閱讀 3024·2019-08-26 11:52
閱讀 916·2019-08-26 10:27