您好,登錄后才能下訂單哦!
這篇文章主要介紹了Docker是什么及怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Docker是什么及怎么使用文章都會有所收獲,下面我們一起來看看吧。
概述
docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 linux 機器上,也可以實現 虛擬化 。
docker的配圖很形象。一只鯨魚(容器)上面裝載著貨物(應用)。
docker安裝
debian/ubuntu等系統可以直接下載deb進行安裝
sudo dpkg -i package-name.deb
安裝好docker之后,執行下面語句確認docker是否安裝成功
sudo docker info
如果docker沒有啟動,則執行
sudo /etc/init.d/docker start 或 sudo service docker start
執行下面的語句啟動一個docker容器
sudo docker run -i -t ubuntu:14.04 /bin/bash
docker run ,運行容器的命令 -i -t , 執行docker以交互(將執行的過程顯示到shell中)的形式啟動容器 ubuntu:14.04 , ubuntu表示鏡像名,14.04表示鏡像的標簽 /bin/bash , 表示要讓啟動的容器執行/bin/bash語句
首次執行這段代碼時,docker會下載ubuntu:14.04對應的鏡像。
docker鏡像和容器
鏡像和容器,是docker中最最重要的兩個概念。
鏡像:在某一操作系統(一般是linux)的基礎上,添加某個服務(如mysql服務),所構成的一個處于靜態的系統鏡像,可以理解為某系統的iso鏡像文件。(我自己的理解[捂臉])
容器:根據鏡像安裝之后的狀態
sudo docker images
上面語句列出本電腦(宿主機)上的鏡像
sudo docker pull redis:3
上面語句可以從docker官方hub中獲取一個鏡像名為redis且標簽為3的鏡像。看它的名字可以知道是安裝了redis 3 版本的鏡像
鏡像的自定義 創建一個安裝好redis服務器的鏡像
1 . 創建目錄和dockerfile
2. 下載163的源文件到redis文件夾下,和dockfile同一目錄下(由于ubuntu原來的軟件源賊慢,所以將其替換)
3. 編寫dockfile,dockfile中的內容如下
from ubuntu:14.04 maintainer dkpaulwen "wen229267643@gmail.com" add $pwd/sources.list.trusty /etc/apt/sources.list run ["apt-get","-y","update"] run ["apt-get","-y","install","redis-server","redis-tools"] expose 6379 cmd ["/usr/bin/redis-server"]
from ubuntu:14.04 : 表明我們所構建的鏡像是基于ubuntu:14.04鏡像的 maintainer name email : 構建人的名字和郵箱 add path1 path2 : 將宿主機中的path1文件/目錄 復制到 docker中 run ["command","option",...] : 表示執行command命令 , 也可以寫作 run command option parameter 這樣的形式。上面執行的兩個語句更新了源,安裝了redis expose 6379 : 表示docker機會將6379端口暴露給宿主機,可以將宿主機的某個端口與這個端口連接,這樣就可以在外部使用這個容器中運行的應用 cmd ["command","option",...] : 表示啟動容器時若不指定執行的命令,就執行這個命令指定的命令
4 . 構建鏡像
在redis目錄下執行命令
sudo docker build -t dkpaulwen/redis .
-t 選項用來告訴docker daemon要構建的鏡像的倉庫名和鏡像名為dkpaulwen/redis,其中dkpaulwen為倉庫名,redis為鏡像名
sudo docker images
查看鏡像
root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# docker images repository tag image id created virtual size dkpaulwen/redis latest eb4b76ccb49c 18 minutes ago 213.4 mb
5. 用自定義的鏡像創建容器
執行下面的命令
sudo docker run -d -p 6379 --name myredis dkpaulwen/redis
-d 選項告訴docker以后臺的形式啟動容器 -p 6379 告訴docker將docker機的6379端口與宿主機的隨機端口(隨機分配一個大端口號)相關聯,也可以這樣 -p 6666:6379,前者是宿主機,后者docker機 --name myredis 指定容器名 dkpaulwen/redis 是鏡像名 這里沒有指定要執行的命令,默認執行dockerfile中的cmd指定的命令
6. 查看創建的docker容器
docker ps 命令
root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# docker ps container id image command created status ports names 3e1366140973 dkpaulwen/redis "/usr/bin/redis-serve" 23 minutes ago up 23 minutes 0.0.0.0:32788->6379/tcp myredis
這里包含容器的一些屬性,其中一個是ports——端口,可以看到,0.0.0.0:32788 -> 6379/tcp ,32788是宿主機端口,6379是被關聯的docker容器端口,類型是tcp
7. 連接這個容器
redis-cli -h localhost -p 32788
root@izm5ejdk51ejf0nkzwz3koz:~/dockers/redis# redis-cli -h localhost -p 32788 localhost:32788> get username "glen" localhost:32788>
因為我在我的服務器上安裝的docker,所以我也可以在自己的電腦上連接服務器上的docker容器
paul@paul-inspiron-5420:~$ redis-cli -h www.wenjingyi.top -p 32788 www.wenjingyi.top:32788> get username "glen" www.wenjingyi.top:32788>
關于“Docker是什么及怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Docker是什么及怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。