Docker鏡像-拉取並且運行


1.docker search : 從Docker Hub查找鏡像

docker search [OPTIONS] 鏡像名

  OPTIONS說明:

  • --automated :只列出 automated build類型的鏡像;

  • --no-trunc :顯示完整的鏡像描述;

  • -s :列出收藏數不小於指定值的鏡像。

可以看到返回了很多包含關鍵字的鏡像,其中包括鏡像名字、描述、收藏數(表示該鏡像的受關注程度)、是否官方創建(OFFICIAL)、是否自動構建 (AUTOMATED)。

2.拉取鏡像

docker pull 鏡像:版本號


如果不指定版本號,默認拉下來是最新的

 

3.運行

 

鏡像是容器的基礎,每次執行 docker run 的時候都會指定哪個鏡像作為容器運行的基礎

現在讓我們以定制一個 Web 服務器為例子,來講解鏡像是如何構建的。 

 

$ docker run --name webserver -d -p 80:80 nginx

 

這條命令會用 nginx 鏡像啟動一個容器,命名為 webserver,並且映射了 80 端口(左邊的也可以改成其他端口為對外暴露的,右邊的是docker中的),這樣我們可以用瀏覽器去訪問這個 nginx 服務器。 輸入localhost

 

現在,假設我們非常不喜歡這個歡迎頁面,我們希望改成歡迎 Docker 的文字,我們可以使用 docker exec 命令進入容器,修改其內容。

$ docker exec -it webserver bash
root@3729b97e8226:/# echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit

我們以交互式終端方式進入 webserver 容器,並執行了 bash 命令,也就是獲得一個可操作的 Shell。

然后,我們用 <h1>Hello, Docker!</h1> 覆蓋了 /usr/share/nginx/html/index.html 的內容。

現在我們再刷新瀏覽器的話,會發現內容被改變了。

現在我們定制好了變化,我們希望能將其保存下來形成鏡像。

要知道,當我們運行一個容器的時候(如果不使用卷的話),我們做的任何文件修改都會被記錄於容器存儲層里。而 Docker 提供了一個 docker commit 命令,可以將容器的存儲層保存下來成為鏡像。換句話說,就是在原有鏡像的基礎上,再疊加上容器的存儲層,並構成新的鏡像。以后我們運行這個新鏡像的時候,就會擁有原有容器最后的文件變化。

$ docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默認網頁" \
    webserver \
    nginx:v2

其中 --author 是指定修改的作者,而 --message 則是記錄本次修改的內容。這點和 git 版本控制相似,不過這里這些信息可以省略留空。

新的鏡像定制好后,我們可以來運行這個鏡像。

 docker commit 命令,手動操作給舊的鏡像添加了新的一層,形成新的鏡像

 

 

4.運行的參數

-d :代表后台運行容器,返回容器ID
--name: 自定義容器的名稱,不加這命令docker會隨便給一個名給你,所以建議打上這命令
-p :代表映射的端口 本地端口:鏡像的默認端口(注意,每個軟件默認端口是不同的)
-e: 配置mysql的root密碼

-i: 以交互模式運行容器,通常與 -t 同時使用;

-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;

-P: 隨機端口映射,容器內部端口隨機映射到主機的高端口

--volume , -v: 綁定一個卷

 docker run -p 12345:3306 --name mysqlyf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

 

 

使用鏡像centos:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。

runoob@runoob:~$ docker run -it centos:latest /bin/bash root@b8573233d675:/#


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM