什么是Docker? Docker入門教程
概述
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn) 虛擬化 。
docker的配圖很形象。一只鯨魚(容器)上面裝載著貨物(應(yīng)用)。
docker安裝
debian/ubuntu等系統(tǒng)可以直接下載deb進(jìn)行安裝
sudo dpkg -i package-name.deb
其他平臺(tái)參照 docker官網(wǎng) docker hello world
安裝好docker之后,執(zhí)行下面語(yǔ)句確認(rèn)docker是否安裝成功
sudo docker info
如果docker沒(méi)有啟動(dòng),則執(zhí)行
sudo /etc/init.d/docker start 或 sudo service docker start
執(zhí)行下面的語(yǔ)句啟動(dòng)一個(gè)docker容器
sudo docker run -i -t ubuntu:14.04 /bin/bash
docker run ,運(yùn)行容器的命令 -i -t , 執(zhí)行docker以交互(將執(zhí)行的過(guò)程顯示到shell中)的形式啟動(dòng)容器 ubuntu:14.04 , ubuntu表示鏡像名,14.04表示鏡像的標(biāo)簽 /bin/bash , 表示要讓啟動(dòng)的容器執(zhí)行/bin/bash語(yǔ)句
首次執(zhí)行這段代碼時(shí),docker會(huì)下載ubuntu:14.04對(duì)應(yīng)的鏡像。
docker鏡像和容器
鏡像和容器,是docker中最最重要的兩個(gè)概念。
鏡像:在某一操作系統(tǒng)(一般是linux)的基礎(chǔ)上,添加某個(gè)服務(wù)(如mysql服務(wù)),所構(gòu)成的一個(gè)處于靜態(tài)的系統(tǒng)鏡像,可以理解為某系統(tǒng)的iso鏡像文件。(我自己的理解[捂臉])
容器:根據(jù)鏡像安裝之后的狀態(tài)
sudo docker images
上面語(yǔ)句列出本電腦(宿主機(jī))上的鏡像
sudo docker pull redis:3
上面語(yǔ)句可以從docker官方hub中獲取一個(gè)鏡像名為redis且標(biāo)簽為3的鏡像??此拿挚梢灾朗前惭b了redis 3 版本的鏡像
鏡像的自定義 創(chuàng)建一個(gè)安裝好redis服務(wù)器的鏡像
1 . 創(chuàng)建目錄和Dockerfile

2. 下載163的源文件到redis文件夾下,和Dockfile同一目錄下(由于ubuntu原來(lái)的軟件源賊慢,所以將其替換)
3. 編寫Dockfile,Dockfile中的內(nèi)容如下
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 : 表明我們所構(gòu)建的鏡像是基于ubuntu:14.04鏡像的 MAINTAINER name email : 構(gòu)建人的名字和郵箱 ADD path1 path2 : 將宿主機(jī)中的path1文件/目錄 復(fù)制到 docker中 RUN ["command","option",...] : 表示執(zhí)行command命令 , 也可以寫作 RUN command option parameter 這樣的形式。上面執(zhí)行的兩個(gè)語(yǔ)句更新了源,安裝了redis EXPOSE 6379 : 表示docker機(jī)會(huì)將6379端口暴露給宿主機(jī),可以將宿主機(jī)的某個(gè)端口與這個(gè)端口連接,這樣就可以在外部使用這個(gè)容器中運(yùn)行的應(yīng)用 CMD ["command","option",...] : 表示啟動(dòng)容器時(shí)若不指定執(zhí)行的命令,就執(zhí)行這個(gè)命令指定的命令
4 . 構(gòu)建鏡像
在redis目錄下執(zhí)行命令
sudo docker build -t dkpaulwen/redis .
-t 選項(xiàng)用來(lái)告訴docker daemon要構(gòu)建的鏡像的倉(cāng)庫(kù)名和鏡像名為dkpaulwen/redis,其中dkpaulwen為倉(cāng)庫(kù)名,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. 用自定義的鏡像創(chuàng)建容器
執(zhí)行下面的命令
sudo docker run -d -p 6379 --name myredis dkpaulwen/redis
-d 選項(xiàng)告訴docker以后臺(tái)的形式啟動(dòng)容器 -p 6379 告訴docker將docker機(jī)的6379端口與宿主機(jī)的隨機(jī)端口(隨機(jī)分配一個(gè)大端口號(hào))相關(guān)聯(lián),也可以這樣 -p 6666:6379,前者是宿主機(jī),后者docker機(jī) --name myredis 指定容器名 dkpaulwen/redis 是鏡像名 這里沒(méi)有指定要執(zhí)行的命令,默認(rèn)執(zhí)行Dockerfile中的CMD指定的命令
6. 查看創(chuàng)建的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
這里包含容器的一些屬性,其中一個(gè)是ports——端口,可以看到,0.0.0.0:32788 -> 6379/tcp ,32788是宿主機(jī)端口,6379是被關(guān)聯(lián)的docker容器端口,類型是tcp
7. 連接這個(gè)容器
redis-cli -h localhost -p 32788
root@iZm5ejdk51ejf0nkzwz3koZ:~/dockers/redis# redis-cli -h localhost -p 32788 localhost:32788> get username "glen" localhost:32788>
因?yàn)槲以谖业姆?wù)器上安裝的docker,所以我也可以在自己的電腦上連接服務(wù)器上的docker容器
paul@paul-Inspiron-5420:~$ redis-cli -h www.wenjingyi.top -p 32788 www.wenjingyi.top:32788> get username "glen" www.wenjingyi.top:32788>
相關(guān)文章
Docker?部署?OnlyOffice?文檔服務(wù)器的操作方法
本文詳細(xì)介紹了如何使用Docker部署OnlyOffice文檔服務(wù)器,包括準(zhǔn)備工作、設(shè)置變量和目錄結(jié)構(gòu)、創(chuàng)建并運(yùn)行OnlyOffice容器、訪問(wèn)OnlyOffice文檔服務(wù)器以及配置和管理,通過(guò)這些步驟,你可以在本地快速搭建一個(gè)強(qiáng)大的文檔編輯平臺(tái),感興趣的朋友一起看看吧2025-02-02
docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包
這篇文章主要為大家介紹了docker-compose實(shí)現(xiàn)wireshark對(duì)linux主機(jī)進(jìn)行抓包腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Docker可視化面板Portainer的實(shí)現(xiàn)
Portainer是一個(gè)免費(fèi)的容器管理工具,支持Docker環(huán)境的可視化管理,通過(guò)Portainer,用戶可以輕松地在Windows或Linux容器中部署服務(wù),大大簡(jiǎn)化了Docker容器的管理工作,感興趣的可以了解一下2024-11-11
zabbix監(jiān)控docker應(yīng)用配置
今天通過(guò)本文給大家分享zabbix監(jiān)控docker容器的原理及部署的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-07-07
Docker 和 Containerd 目錄結(jié)構(gòu)及存儲(chǔ)機(jī)制詳解
Docker和Containerd是兩種流行的容器運(yùn)行時(shí)工具,它們都有自己的目錄結(jié)構(gòu)和存儲(chǔ)機(jī)制,本文詳細(xì)介紹了Docker和Containerd的目錄結(jié)構(gòu)和存儲(chǔ)機(jī)制,并對(duì)比了它們之間的主要區(qū)別,包括存儲(chǔ)路徑、掛載點(diǎn)管理、配置文件和日志文件,感興趣的朋友一起看看吧2025-02-02
Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn)
這篇文章主要介紹了Docker多平臺(tái)安裝與配置指南的實(shí)現(xiàn),深入研究了Docker在Linux、Windows、和macOS等不同平臺(tái)上的安裝過(guò)程及Docker鏡像管理、容器運(yùn)維、使用Docker Compose進(jìn)行多容器管理,以及網(wǎng)絡(luò)與數(shù)據(jù)管理等,感興趣的可以了解一下2024-01-01
Docker部署.NET6項(xiàng)目的實(shí)現(xiàn)步驟
Docker是現(xiàn)在比較流行的開源容器引擎,有了它讓我們部署和維護(hù)系統(tǒng)更加方便,本文主要介紹了Docker部署.NET6項(xiàng)目,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12

