Docker入门简明教程
Docker簡介
概念
Docker是基于Go語言實現的云開源項目,是基于Linux的多項開源技術提供高效、敏捷和輕量級的容器方案。創建于2013年初。自從開源后就受到了廣泛的關注,從長遠的眼光來看,Docker是未來虛擬化的一個發展的趨勢。
優勢
1.一次構建,處處運行,帶來了更快速的交付和部署和更輕松的遷移和擴展。
2.對系統內核進行抽象,帶來了更輕量快捷的的體驗,一臺主機可以同時運行數千個Docker容器,而且在性能上幾乎不會損耗。
Docker1.1.2中Ubuntu14.04主機與Ubuntu14.04Docker容器性能測試
| CPU | sysbench | 1 | 0.9945 |
| 寫內存 | sysbench | 1 | 0.9826 |
| 讀內存 | sysbench | 1 | 1.0025 |
| 磁盤I O | dd | 1 | 0.9811 |
| 網絡 | iperf | 1 | 0.9626 |
從數值上看,物理主機與Docker容器之間的性能差異不大,二者速度幾乎一樣。
基本組件
鏡像:鏡像是構建Docker世界的基石。用戶的一切操作都是基于鏡像來運行自己的容器的。同時鏡像也是Docker的“構建”部分,也可以把鏡像當作容器的"源代碼",鏡像體積很小,便攜性高,易分享、存儲和更新。
容器:容器是基于鏡像啟動起來的,用戶只需要把自己的應用程序或服務打包放進容器即可。容器中可以運行一個或多個進程,是Docker的啟動和執行階段。
Docker安裝
安裝Docker的前提條件
運行64位CPU架構的計算機(這意味著一些較老的機器可能無法安裝Docker)
Linux系統的話,得運行Linux3.8內核及其以上的版本,一些老版本的2.6x內核運行可能會出現一些無法預料的bug
windows安裝Dokcer
官網直接下載安裝包: https://download.docker.com/win/stable/InstallDocker.msi
然后直接運行來安裝Docker,開啟Hyper-V(這個階段可能需要重啟),有可用更新的話,就安裝 更新。
小提示:windows下的Docker啟動貌似有點慢,不知道是不是我這龜速的機械硬盤的原因。
dokcer完全啟動后,是這樣樣子的:
驗證docker是否安裝成功:在命令提示符下輸入:docker
出現下面這張圖即安裝成功:
Mac OS安裝Docker
首先安裝Virtual Box,官網下載:https://www.virtualbox.org
Virtual box安裝完了再安裝Docker
Docker官網直接下載安裝包: https://download.docker.com/mac/stable/Docker.dmg
Mac下安裝啟動就很快了。
然后在終端下輸入:
注意:Mac和Linux下必須得以==root==身份才可以穩定運行docker,
效果如下:
Ubuntu安裝Docker
Linux安裝要簡單的多,畢竟Docker一開始就是基于Linux提出來的。
首先以root身份終端下輸入:
然后就沒有然后了,1條命令即可安裝
root身份終端下輸入:docker
查看安裝是否成功:
Dokcer入門
搜索鏡像
Dokcer通過Dokcer Hub搭建鏡像共享生態系統,這意味著我們可以直接下載其他人已經打包好的鏡像。
使用docker search 命令在Docker HUB中搜索鏡像
這里我們以搜索Ubuntu鏡像為例:
一般我們下載靠前面的鏡像,一般帶有Ubuntu、centos并且靠前的鏡像都是官方鏡像,其他的都是用戶自己創建并共享的鏡像。
下載鏡像
下面從Docker Hub下載Ubuntu鏡像
終端輸入:
Docker默認是下載最新版本的Ubuntu鏡像
鏡像一般都很小的,網速快的話可以分分鐘下載完。
列出下載的鏡像
下面列出本地主機中已經下載的docker鏡像
終端輸入:
docker images
可以看到我們剛剛下載的Ubuntu鏡像,大小才129MB,是4周前更新的版本
創建并使用容器
使用run命令即可用鏡像來創建一個容器
docker run -i -t --name hellodocker ubuntu /bin/bash命令格式為:docker run <選項參數> <鏡像名稱> <要運行的文件>>使用 -i、-t選項可以在運行的Bash shell中進行輸入與輸出 >使用—name可以指定容器的名稱。如果不指定的話,docker默認會自動生成隨機的名稱進行指定。再回看這行命令大概就明白了它的意思:使用ubuntu這個鏡像來創建一個 名為hellodocker 的容器
當我們創建容器后,默認就進入了容器,此時使用cd、ls等命令發現已經不是我們物理機上的ubutu了。
退出容器
終端輸入:
exit從Bash shell退出,因為在Ubuntu鏡像中直接運行/bin/bash 可執行文件,所以退出后 容器也會終止(stop)
就這樣我們創建運行并退出了一個容器,現在自己再親手創建個容器試試看吧.-v-
查看容器列表
終端輸入:
docker ps -a查看本地的所有容器的詳細信息
可以看到,除了我們第一個創建的名為 hellodocker外,還發現了我后來新建的GG容器,他們都是Exited(退出狀態),這里還可以看到他們的ID、所使用的鏡像、創建時間、端口等信息
使用start命令來啟動容器
到這里機智的小伙伴們可能產生疑問了:第一次創建容器是默認就進入了容器,那么在我們 exit 退出容器之后如何喚醒我們的容器呢?
表急,其實docker早已考慮到了這個,我們在終端下輸入:
來啟動名為hellodocker的容器,所以啟動docker容器的命令就是:
docker start 容器名來啟動名為hellodocker的容器,所以啟動docker容器的命令就是:
docker start 容器名使用restart命令來重啟容器
與重啟系統一樣,也可以直接使用如下命令來重啟某個容器:
docker restart hellodocker使用attach命令連接容器
前面我們start了一個容器,但是還是默認不進入容器,我們使用
docker ps -a來查看容器的運行情況:
可以看到hellodocker這個容器已經啟動了4秒多了,說明容器已經在運行了,那么我們怎么來連接啟動的docker容器呢?
終端輸入:
來連接已經在后臺啟動的docker容器
小提示:這里得 按下 回車 才進入容器,不要傻等,幾分鐘內都沒有什么反應的(不要問我怎么知道的,心酸。。。)
Docker系統統計信息
終端下輸入:
docker stats用來顯示一個或多個容器的統計信息,可以看到容器的ID、CPU占用率、內存使用率、網速等信息
終止容器
要終止容器的話,首先docker ps -a列出后臺正在運行的容器
然后終端輸入:
終止了我們剛啟動不久的hellodocker 容器
刪除容器
如果容器不再使用可以使用如下命令刪除:
docker rm GG刪除了GG的容器(你要刪除的容器必須已經停止運行了)
刪除鏡像
如果鏡像不再使用可以使用如下命令刪除:
docker rmi ubuntu刪除了本地的ubuntu鏡像(此刻必須刪除所有運行在這個鏡像上的容器)
OK Docker的入門命令就教到這里了,下面我們來實戰一把吧。
打造屬于你自己的Kali
一般我們搞信息安全的難免都會用到Kali Linux,如果不想安裝累贅的虛擬機或者不想折騰更新源等那么該腫么辦呢?現在有了Docker,這一切的問題都不再是問題,使用Docker來運行Kali,更加輕便快捷,而且可以ping通物理機的C段,用來實戰的話再合適不過了。
秀個主題先:
安裝了Mac OS的主題后,Ubuntu也感覺不再那么難用了。(嘿嘿 不扯了 趕緊步入正題了)
首先搜索下可用的Kali鏡像
docker search kali
出來了一大堆,根據名字可以大概判斷出第二個鏡像是帶有meatsploit的,所以為了日后配置的方便我們這里直接來下載第二個鏡像。
下載Kali 鏡像
docker pull linuxkonsult/kali-metasploit下載帶有msf的kali鏡像(鏡像不大,我這邊下載完不到10分鐘)
創建Kali 容器
下載帶有msf的kali鏡像(鏡像不大,我這邊下載完不到10分鐘)用下載的kali鏡像創建個名為msfkali的容器
進入容器查看基本信息
可以看到kali使用的是默認源,這里我要說一下,kali 2016.X版本的kali使用這個默認官方源就好,
這個默認的官方源會自動選擇速度最快的鏡像站點來下載的,切記:==不要換這個更新源==。
終端輸入:
msfconsole可以看到默認是帶metasploit的,看來我們之前猜的沒錯
除此之外還帶了nmap、wget、git等
但是這些工具還不夠我們完成一次滲透測試
安裝自己需要的工具
首先先刷新下更新緩存列表:
apt-get update然后就可以直接安裝工具了
apt-get install 工具名這里你需要什么工具就安裝什么工具,速度很快的,用什么就安裝什么,沒有什么比這個更DIY的了。
舉個例子:你想安裝個aircrack來破解WiFi密碼,那么就直接:
總之,這個Kali Docker就是Kali的命令行,和正常是Kali一模一樣,該怎么折騰就怎么折騰吧。
小結:Docker從長遠眼光來看是一個趨勢,雖然起初剛剛學習需要投入些時間,但是當你熟練Docker的時候,才會發現它的真正強大之處,從現在來看已經可以完全替代PentestBox了,當然Docker的作用不僅僅這么簡單,博客以后會繼續更新Docker更加深入的文章的。
Mac OS下Kali Docker效果演示
轉載于:https://www.cnblogs.com/sqlsec/p/docker.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Docker入门简明教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NodeJS中的require和impo
- 下一篇: hdu 1561 The more, T