前言
Docker目前用的越来越多,前段时间接到一个项目:使用Docker部署AWD靶场,实际操作起来还是有很多细节的,这里特地总结一下,写给自己看。
Docker安装
这里我只写Ubuntu、Kali/Debian、CentOS下的安装,macOS和Windows平台的安装请自行百度。
Ubuntu/CentOS安装Docker
Ubuntu Linux系统耳熟能详的操作系统。
curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyuncurl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyuncurl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun
Kali/Debian安装Docker
Kali是基于Debian封装的,所以两者安装方法大同小异。
Kali Linux安装Docker用网上那个一键安装脚本貌似有点问题,这里单独记录一下,以便自己和其他网友使用:
# 添加Docker PGP密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - # 配置docker apt源 我这里用的国内阿里云的docker下载源 echo 'deb https://mirrors.aliyun.com/docker-ce/linux/debian buster stable'> /etc/apt/sources.list.d/docker.list # 更新apt源 apt update # 如果之前安装了docker的话 这里得卸载旧版本docker apt remove docker docker-engine docker.io # 安装docker apt install docker-ce # 查看版本 docker version# 添加Docker PGP密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - # 配置docker apt源 我这里用的国内阿里云的docker下载源 echo 'deb https://mirrors.aliyun.com/docker-ce/linux/debian buster stable'> /etc/apt/sources.list.d/docker.list # 更新apt源 apt update # 如果之前安装了docker的话 这里得卸载旧版本docker apt remove docker docker-engine docker.io # 安装docker apt install docker-ce # 查看版本 docker version# 添加Docker PGP密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - # 配置docker apt源 我这里用的国内阿里云的docker下载源 echo 'deb https://mirrors.aliyun.com/docker-ce/linux/debian buster stable'> /etc/apt/sources.list.d/docker.list # 更新apt源 apt update # 如果之前安装了docker的话 这里得卸载旧版本docker apt remove docker docker-engine docker.io # 安装docker apt install docker-ce # 查看版本 docker version
开机自启
sudo systemctl enable docker sudo systemctl start dockersudo systemctl enable docker sudo systemctl start dockersudo systemctl enable docker sudo systemctl start docker
Docke优化
Docker国内加速器
不替换源对话,docker pull 拉去镜像对速度实在太龟速了,如果你很佛系对话可以不进行更换
# 编辑这个文件,如果没有对话就创建这个文件 vim /etc/docker/daemon.json# 编辑这个文件,如果没有对话就创建这个文件 vim /etc/docker/daemon.json# 编辑这个文件,如果没有对话就创建这个文件 vim /etc/docker/daemon.json
内容如下:
{ "registry-mirrors": [ "http://hub-mirror.c.163.com" ] }{ "registry-mirrors": [ "http://hub-mirror.c.163.com" ] }{ "registry-mirrors": [ "http://hub-mirror.c.163.com" ] }
这里我使用对是国内163网易源,其他源可以自行百度替换。
配置完成后重启服务才可以生效:
sudo systemctl daemon-reload sudo systemctl restart dockersudo systemctl daemon-reload sudo systemctl restart dockersudo systemctl daemon-reload sudo systemctl restart docker
Docker Portainer
Portainer是Docker一款可视化管理用具,用起来更加容易上手,部署的话也十分简单。
# 拉取镜像 docker pull portainer/portainer # 一键部署 docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer# 拉取镜像 docker pull portainer/portainer # 一键部署 docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer# 拉取镜像 docker pull portainer/portainer # 一键部署 docker volume create portainer_data docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
浏览器访问本地的9000
端口即可进入到设置密码界面:
设置一个密码,即可进入系统:
这里选择管理本地Docker的选项,点击就可以看到比较容易理解的Docker管理即界面了。
Docker基础命令
搜索镜像
docker search 关键词docker search 关键词docker search 关键词
下载镜像
docker pull 镜像名docker pull 镜像名docker pull 镜像名
查看已下载的镜像列表
docker image lsdocker image lsdocker image ls
创建并使用容器
docker run -it --name 容器名 镜像名/镜像ID /bin/bashdocker run -it --name 容器名 镜像名/镜像ID /bin/bashdocker run -it --name 容器名 镜像名/镜像ID /bin/bash
查看当前容器
docker ps -adocker ps -adocker ps -a
统计信息
docker statsdocker statsdocker stats
启动容器
docker start 容器名/容器IDdocker start 容器名/容器IDdocker start 容器名/容器ID
重启容器
docker restart 容器名/容器IDdocker restart 容器名/容器IDdocker restart 容器名/容器ID
终止容器
docker stop 容器名/容器IDdocker stop 容器名/容器IDdocker stop 容器名/容器ID
连接容器
docker exec -it 容器名/容器ID /bin/bashdocker exec -it 容器名/容器ID /bin/bashdocker exec -it 容器名/容器ID /bin/bash
删除容器
docker rm 容器名/容器IDdocker rm 容器名/容器IDdocker rm 容器名/容器ID
删除镜像
docker rmi 镜像名/容器IDdocker rmi 镜像名/容器IDdocker rmi 镜像名/容器ID
端口映射
部署一个容器,并将80端口映射到宿主机的8000端口上
# 可以使用--name自定义部署的容器名 docker run -d -p 8000:80 --name 容器名 镜像名 # 也可以直接通过镜像部署 docker run -d -p 8000:80 镜像名# 可以使用--name自定义部署的容器名 docker run -d -p 8000:80 --name 容器名 镜像名 # 也可以直接通过镜像部署 docker run -d -p 8000:80 镜像名# 可以使用--name自定义部署的容器名 docker run -d -p 8000:80 --name 容器名 镜像名 # 也可以直接通过镜像部署 docker run -d -p 8000:80 镜像名
dockerfile部署镜像
docker build -t 自定义镜像名称 .docker build -t 自定义镜像名称 .docker build -t 自定义镜像名称 .
docker-compose部署
docker-compose up -ddocker-compose up -ddocker-compose up -d
Docker compose
docker compose 神器,国内的vulhubs靶场就是用的docker compose规范,所以这里有必要安装一下。
首先来查看最新版本https://github.com/docker/compose/releases
我写这篇文章的时候目前是1.25.0-rc2版本,具体根据新版本的变化自行调整下面命令来安装:
# 下载docker-compose curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 给docker-compose执行权限 chmod +x /usr/local/bin/docker-compose # 查看docker compose版本 root@kali-linux:~# docker-compose version docker-compose version 1.25.0-rc2, build 661ac20e docker-py version: 4.0.1 CPython version: 3.7.4 OpenSSL version: OpenSSL 1.1.0k 28 May 2019# 下载docker-compose curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 给docker-compose执行权限 chmod +x /usr/local/bin/docker-compose # 查看docker compose版本 root@kali-linux:~# docker-compose version docker-compose version 1.25.0-rc2, build 661ac20e docker-py version: 4.0.1 CPython version: 3.7.4 OpenSSL version: OpenSSL 1.1.0k 28 May 2019# 下载docker-compose curl -L https://github.com/docker/compose/releases/download/1.25.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 给docker-compose执行权限 chmod +x /usr/local/bin/docker-compose # 查看docker compose版本 root@kali-linux:~# docker-compose version docker-compose version 1.25.0-rc2, build 661ac20e docker-py version: 4.0.1 CPython version: 3.7.4 OpenSSL version: OpenSSL 1.1.0k 28 May 2019
原文链接:https://ctf.njupt.edu.cn/archives/86?replytocom=10