kali安装docker、配置阿里云镜像加速、docker使用
1.需求
- 最近需要用到docker比较多,遂安装使用下,第一次用docker搭建测试环境,不得不说,docker真香。期间遇到了比较多奇奇怪怪的问题,网上的教程也比较多比较乱,遂记录一下。
- 如果不是在kali上安装,例如debian9或10可以参考这个链接:https://www.myfreax.com/how-to-install-and-use-docker-on-debian-9/
2.安装docker
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
echo 'deb https://apt.dockerproject.org/repo debian-stretch main' > /etc/apt/sources.list.d/docker.list
apt-get install apt-transport-https ca-certificates
apt-get update && sudo apt-get install docker-engine
//由于版本变化等各种其他复杂原因,如果安装docker-engine这一步失败的话,建议改为apt-get install docker.io
systemctl start docker
3.配置阿里云镜像下载加速
-
注册登录阿里云镜像加速页面:https://cr.console.aliyun.com/#/accelerator
-
注册完之后拿到自己的加速器地址
-
修改/etc/docker/daemon.json文件配置
{
"registry-mirrors": ["https://××××××.mirror.aliyuncs.com"]
} -
重启daemon:systemctl daemon-reload
-
重启docker服务:systemctl restart docker
4.如果发现没有docker-compose的话,可以按下面的方式安装
详见:https://github.com/docker/compose/releases
curl -L https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
注:用pip安装docker-compose的话貌似会遇到一些奇奇怪怪的问题
5.docker常用指令
- 启动:systemctl start docker
- 一键运行docker:docker-compose up -d,运行该命令需要当前目录下有docker-compose.yaml文件,一般支持docker一键部署的github项目下载下来只来会有这个文件。
- 查看镜像:docker images
- 查看容器:docker ps -a
- 停止所有容器运行:docker rm $(docker ps -aq)
- 删除所有镜像:docker rmi $(docker images -q),删除镜像前需要停止运行的容器
- 容器重启:docker-compose restart,配置文件、代码修改或者版本更新(从Github拉下最新的代码),不需要重新build,只需要执行docker-compose restart
- 数据持久化保存:将docker/data/mysql目录挂载到外部目录即可,一般支持一键部署的会将配置写在docker-compose.yaml文件里,自己build的话可以是-v ./docker/data/mysql/:/var/lib/mysql
- 查看日志:docker-compose logs
- 移除容器:docker-compose down -v
- 注:
- docker bulid和run用于创建单个镜像和容器,Dockerfile文件指定基础信息
- docker-compose是多容器管理,也就是常说的容器编排,根据docker-compose.yml文件定义容器运行时属性,指明容器间依赖
- 在实际的生产环境中,多容器的创建和管理使用K8S比较多
6.[补充]docker部署服务的几种方式
- 1.根据公网上已有的镜像直接pull+run部署,例如某个webserevr
docker search webserevr
docker pull jsda**/webserver
docker run -d -p 80:80 webserver
- 2.下载github上某个支持docker部署的项目,举一个例子
git clone https://github.com/firesunCN/BlueLotus_XSSReceiver.git
cd BlueLotus_XSSReceiver
docker build -t bluelotus . #.表示从当前路径寻找Dockerfile文件,该文件包含了基础镜像、创建容器后运行的指令、端口等信息
docker images #这个时候可以看到已创建好的bluelotus镜像
docker run -d -p 80:80 bluelotus #指定run bluelotus镜像,以创建容器
访问 http://ip/admin.php 密码 bluelotus
- 3.使用docker-compose一键部署
git clone https://github.com/***/***.git
docker-compose up -d
如果加班只是玩手机、刷微博,那一定是煎熬。如果是坚持的修炼,那一定收益颇丰。