docker簡單實用教程
本文為原創文章,轉載請註明出處!
docker是什麼?
docker是一個開源的容器引擎,其核心部件docker映象,docker映象可以理解為預裝了一些應
用程式的作業系統映象(也有沒有搭建任何環境的初始映象)
docker能幹什麼?
docker可以用來快速部署應用程式需要執行的環境以及各種依賴
比如如果我們要執行一個依賴於lamp環境的web應用,那麼我們只需要直接pull一個lamp的鏡
像,然後用此映象建立一個容器來執行我們的web應用,而不需要我們自己再搭建lamp環境。
docker技術的優點是什麼?
快速搭建環境,體積小(一個docker映象的體積可能只是虛擬機器映象的十分之一),跨平臺執行。
作為安全人員,我們可能會經常搭建一些web環境,傳統的搭建方法都很繁瑣低效,而docker的應用可以大大提高我們搭建環境的效率。這篇文章會介紹一些docker在搭建web環境中的一些簡單應用,如果讀者想要深入的學習docker,可以自行查閱官方文件。
部署基於lamp環境的web應用
第一步:用dockersearch命令搜尋lamp映象
dockersearch image_name
第二步:選擇一個docker映象,將他pull下來預設的tag是latest(相當於版本號),我們選擇tutum/lamp映象
dockerpull image:tag
然後我們檢視一下我們docker已經有哪些映象了
dockerimages
我們可以看到,tutum/lamp已經在我們的本地映象列表了,tag是latest,還顯示了映象的ID,以及該映象的創造時間
第三步:用該映象建立並執行一個容器,並通過埠對映將容器的80埠對映到主機的8080埠
dockerrun -d --name=container_name -p 8080:80 tutum/lamp
然後用如下命令進入容器的命令列
dockerexec -it container_name /bin/bash
我們可以看到root@後面的使用者名稱已經改變了,成功進入容器內部
然後切換到/var/ww/html目錄
cd/var/www/html
然後把我們的web應用程式放在html目錄下,然後執行如下命令啟動apache
serviceapache2 start
我們可以用ctrl+p+ctrl+q退出容器,並後臺執行容器,,然後再訪問主機的8080埠
我們可以看到,web服務已經成功執行了
除了這種在容器內部部署web應用程式的方法,docker還提供了一種掛載目錄的方法,通過-v引數,將主機目錄掛載到容器的某個目錄。
一個小小的demo來展示-v引數的用法
首先,在主機建立一個目錄,然後用tutum/lamp映象建立一個容器,並通過-v引數來將主機目錄掛載到容器然後在執行容器的lamp環境
dockerrun -d --name=test -p 9090:80 -v /var/test/:/var/www/html tutum/lamp
/var/test/目錄下index.html檔案內容如下:
<h1>
helloworld
</h1>
現在訪問一下9090埠
掛載成功,如果需要修改檔案就只用修改在主機上掛載的檔案就可以了
有些時候,我們pull下來的映象並不能滿足我們的要求,那麼我們可以在其基礎上在進行改動,然後把改動後的容器打包成映象方便我們後面使用。舉個例子:比如我們pull下來的tutum/lamp映象沒有安裝vim,那麼我們可以在裡面安裝好vim,然後將其打包為一個新的映象,以後用這個映象建立的容器就有vim了。
把容器打包為映象需要使用dockercommit命令:
dockercommit -a "Drac0nids" -m "lamp base"container_name
image_namedockercommit命令的具體用法如下:
docker倉庫的使用
首先去https://hub.docker.com/註冊一個賬號(需要科學上網,不然有個谷歌的人機驗證看不到導致不能註冊
有了賬號以後可以用dockerlogin命令來登入我們的賬號(退出登入使用dockerlogout)
我們使用docker倉庫的主要目的是上傳儲存我們的映象,以便以後使用的時候可以直接拉取下來用,首先我們用dockerimages檢視我們有哪些image
我們用如下命令將映象上傳到docker倉庫
dockerpush image_name:tag
這裡會出現如下錯誤資訊
denied:requestedaccesstothe resource isdenied
解決辦法是用dockertag命令將原映象映象名命名為使用者名稱/映象名
dockertag lamp_base:latest drac0nids/lamp_base:latest
然後再執行dockerpush命令(只有一個tag的時候可以省略)
dockerpush drac0nids/lamp_base
要檢視我們上傳的的映象可以登入 https://hub.docker.com/ 檢視
然後要用的時候就直接pull下來就可以了docker pull drac0nids/lamp_base
使用docker倉庫的好處就是方便在不同的機器上共享image
文章僅用於普及網路安全知識,提高小夥伴的安全意識的同時介紹常見漏洞的特徵等,若讀者因此做出危害網路安全的行為後果自負,與合天智匯以及原作者無關,特此宣告。
相關文章
- PetaPoco .net 輕量級orm簡單實用教程ORM
- 簡明 docker 教程Docker
- 最簡單的docker教程:在docker裡執行nginx伺服器DockerNginx伺服器
- 前端之路:緊跟潮流,docker簡單應用前端Docker
- 實用且簡單的Git教程,輕鬆搞定多人開發Git
- 寶塔簡單實用
- 用js玩轉Scriptable,超簡單教程JS
- Docker簡易安裝教程Docker
- docker簡單筆記Docker筆記
- docker的簡單使用Docker
- Docker簡單使用MySQLDockerMySql
- docker命令簡單使用Docker
- grpc簡單教程RPC
- Docker常見命令---簡易教程Docker
- 技能篇:docker的簡易教程Docker
- Python運用於資料分析的簡單教程Python
- PHP + Laravel 的簡單應用教程 — ajax 的使用PHPLaravel
- 簡單實用的CODE REVIEW工具View
- Java用UDP實現簡單聊天JavaUDP
- butterfly簡單使用教程
- MacDroid使用簡單教程~Mac
- PHP PDO 簡單教程PHP
- 會用Docker的人都別裝了,這多簡單吶Docker
- kali簡單安裝docker和docker-composeDocker
- React 教程第十一篇 —— Redux 簡介和簡單實現ReactRedux
- 讓動畫實現更簡單,Flutter 動畫簡易教程!動畫Flutter
- Docker簡易版教程——通俗易懂Docker
- 簡單實用的客戶關係管理系統(CRM),在設計上力求簡單、實用。
- 簡單的Cloud Toolkit教程,助你秒部署應用程式Cloud
- 用ListView簡單實現滑動列表View
- Android MVP模式--簡單實用示例 BMIAndroidMVP模式
- webpack4簡單實用配置解析Web
- Java 新特性總結——簡單實用Java
- 用natapp簡單實現內網穿透APP內網穿透
- 簡單實用的JDK版本切換JDK
- 使用 Docker 和 Nginx 實現簡單目錄索引服務DockerNginx索引
- ASP.NETCore簡介-ASP.NETCore基礎教程-簡單教程,簡單程式設計ASP.NETNetCore程式設計
- Flutter | 超實用簡單選單彈出框 PopupMenuButtonFlutter