Docker创建整套测试环境
因为测试需要平时需要搭建各种各样奇奇怪怪的环境,但是我又不想各种环境变量污染了机器本地的环境,这个该咋办呢?
欸!!!!
有了,Docker不就完全可以满足我的需求嘛,所有的环境都是在容器中,又不会影响我的本地,而且随时想用了直接启动就行,用完了直接stop容器,最重要的一点是,配的环境多了,我直接把容器关了,然后再重新起个容器不就行了,真香啊~
这里我选择的是phpstudy+宝塔+Portainer的三个容器
phpstudy和宝塔主要是用来搭建环境的
Portainer是docker的web管理工具,一键启动、一键停止、一键重装等,真香
phpstudy
Dockerfile
FROM ubuntu:14.04
MAINTAINER xiaoyu(977856041@qq.com)
#设置root账户密码,安装ssh服务
RUN echo "root:123456" | chpasswd
RUN apt-get update
RUN apt-get install -y openssh-server wget curl libxml2 xz-utils
RUN mkdir -p /var/run/sshd
RUN ssh-keygen -A
#给宿主机开放端口
EXPOSE 20
EXPOSE 21
EXPOSE 22
EXPOSE 80
EXPOSE 8010
EXPOSE 443
EXPOSE 9080
EXPOSE 30000
EXPOSE 30050
CMD ["/usr/sbin/sshd", "-D"]
#安装phpstudy小皮面板
RUN wget -O install.sh https://notdocker.xp.cn/install.sh && bash install.sh
启动容器
mkdir www
docker build -t phpstudy_ubuntu:14 .
docker run -i -t -d --name phpstudy -p 2333:22 -p 21:21 -p 80:80 -p 443:443 -p 30000:30000 -p 9080:9080 -p 30050:30050 --privileged=true -v ./www:/www phpstudy_ubuntu:14
宝塔
启动容器
docker run -d --restart unless-stopped --name baota -p 8888:8888 -p 2222:22 -p 443:443 -p 80:80 -p 888:888 -p 8080:8080 -p 8081:8081 -p 8082:8082 -p 8083:8083 -v /root/tools/bt/website_data:/www/wwwroot -v /root/tools/bt/mysql_data:/www/server/data -v /root/tools/bt/vhost:/www/server/panel/vhost btpanel/baota:lnmp
去除强制登录验证
docker exec -it 容器id bash #进入容器
wget https://github.com/wei/baota/releases/download/7.7.0/LinuxPanel-7.7.0.zip
unzip LinuxPanel-7.7.0.zip
cd panel/
bash update.sh
mv /www/server/panel/data/bind.pl /www/server/panel/data/bind.pl.bak
Portainer
一键安装
docker run -d --name portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /root/tools/Portainer/data:/data 6053537/portainer-ce