Docker使用及部署CTF題目


Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然後發佈到任何流行的 Linux或Windows 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

docker安裝

  • docker下載
    sudo apt install docker.io

  • 啓動docker
    service docker start

docker常用命令

  • 從鏡像倉庫中拉取或者更新指定鏡像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
    從Docker Hub下載java最新版鏡像。
    docker pull java
    
    從Docker Hub下載REPOSITORY爲java的所有鏡像。
    docker pull -a java```
  • 創建鏡像
docker build [options] path | url | - .(最後的點不能丟)
eg:docker build -t warmup .
eg: docker build -f /path/to/a/Dockerfile .
eg: docker build github.com/creack/docker-firefox
  • 新建一個docker容器,並映射端口號。
docker run [options] [host port]:[docker port] [image]
用到的option: -d 後臺運行
               -P 隨機把容器的端口映射到一個主機未使用的高端口
               -p 格式爲主機端口:容器端口 ,自選端口映射
               -i  以交互模式運行容器,常與-t連用
               -t  爲容器重新分配一個僞輸入終端,常與-i連用
eg:docker run -i -d -P warmup 
eg: docker run -d -p 100:80 -p 32768:80 warmup
  • 查看本地的docker鏡像
docker images 或者 docker image ls
  • 查看正在運行的docker容器。
docker ps
  • 啓動/停止一個docker容器。
docker start [container id]
docker stop  [container id]
  • 刪除一個docker容器。(注意:需要先把容器停止纔可以刪除。)
docker rm [container id]
  • 容器與主機(服務器,不是自己的PC)之間的數據拷貝
docker cp  dest_path [container id]:container_path ##主機cp到容器
docker cp  [container id]:container_path dest_path ##容器cp到主機
將主機/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下
docker cp /www/runoob 96f7f14e99ab:/www/

 將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中
docker cp 96f7f14e99ab:/www /tmp/

 將主機/www/runoob目錄拷貝到容器96f7f14e99ab中,目錄重命名爲www
docker cp /www/runoob 96f7f14e99ab:/www

docker部署CTF題目

由於要部署web題,所以選擇了一個apache-php5

docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

然後運行鏡像,並綁定一下端口。

docker run -d -p 8085:80 registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5

此時會返回一個值,表示該運行docker的id。以後如果想訪問這個容器,需要通過該id。
也可通過docker ps查看正在運行的容器,得到容器id

然後將本地源碼文件拷貝到docker,使用docker的cp命令(在id前幾位沒有重複的情況下,可以取前幾位。)
docker cp ./ f7d233:/var/www/
  • 進入docker容器內部.
docker exec -it f7d233 bash

    -d :分離模式: 在後臺運行
    -i :即使沒有附加也保持STDIN 打開
    -t :分配一個僞終端
  • 退出docker容器內部.
Ctrl+p+q

參考:
菜鳥教程-Docker 命令大全
通過docker部署ctf題目
記docker復現CTF題的一次流程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章