你的位置:首页 > 操作系统

[操作系统]Docker版本shadowsocks多用户ss

为了方便用户部署自己的shadowsocks和ss-panel,花了两天时间学习和编写dockerfile,做了一个docker版本,欢迎下载使用。

 

Docker版本地址

https://hub.docker.com/r/maxidea/ss-panel/

本Docker镜像基于官方ubuntu版本,已包含所需的nginx、php、mysql、redis、shadowsocks等安装包和环境。

Docker版本安装

系统要求

1) Docker要求64位的系统且内核版本至少为3.10(如果是Ubuntu 12.04 LTS,则要求内核版本至少是3.13)

2) 磁盘剩余空间2GB以上

安装流程

1) 安装docker

wget -qO- https://get.docker.com/ | sh

2) 下载镜像

docker pull maxidea/ss-panel

3) 初次运行镜像

docker run -d -P maxidea/ss-paneldocker ps

看容器是否正常启动,例如:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES90d665f94787 maxidea/ss-panel "/usr/bin/supervisord" 13 seconds ago Up 12 seconds 0.0.0.0:32777->80/tcp, 0.0.0.0:32776->1025/tcp, 0.0.0.0:32775->1026/tcp, 0.0.0.0:32774->1027/tcp, 0.0.0.0:32773->1028/tcp nostalgic_stonebraker

进入容器, CONTAINER ID样例里为90d665f94787

docker exec -i -t <CONTAINER ID> /bin/bash

创建ss-panel管理员帐户

root@[CONTAINER ID]:/ cd /opt/ss-panel; php xcat createAdmin

正常输出:

add admin/ 创建管理员帐号.....Enter your email/输入管理员邮箱: 123@qq.comEnter password for: 123@qq.com / 为 123@qq.com 添加密码 123Email: 123@qq.com, Password: 123! Press [Y] to create admin..... 按下[Y]确认来确认创建管理员账户..... Y

重启动shadowsocks服务:

root@[CONTAINER ID]:/ supervisorctl restart shadowsocksroot@[CONTAINER ID]:/ service nginx restartroot@[CONTAINER ID]:/ exit #退出容器

4) 保存修改到镜像

docker commit <container_id> maxidea/ss-panel

5) 再次启动镜像,后台运行,并指定端口对外

(用户端口1025为刚建立的admin账号使用,对应的密码登录ss-panel可见)
(1026以后的端口为新用户使用,每创建一个新用户请加一个端口映射,例子如下:)

docker run -d -p 80:80 -p 1025:1025 -p 1026:1026 -p 1027:1027 maxidea/ss-panel

管理ss-panel

1) 用户管理
使用admin账号登录后台:http://youripaddress:port/admin

2) 监控shadowsocks进程

宿主:

docker exec <CONTAINER ID> supervisorctl tail -f shadowsocks stderr

或者在容器内:

supervisorctl tail -f shadowsocks stderr

Dockerfile代码:

因为学习docker只有两天时间,对dockerfile的理解还是比较肤浅,希望各位多提意见,项目地址:https://hub.docker.com/r/maxidea/ss-panel/~/dockerfile/

dockerfile代码:

 1 # ss-panel 2 # 3 # VERSION 3.0 4  5 # auto build from my github project: https://github.com/maxidea-com/ss-panel 6  7 FROM ubuntu:14.04  8  9 # make sure the package repository is up to date10 RUN apt-get -y update && apt-get install -y redis-server11 RUN echo "mysql-server-5.6 mysql-server/root_password password pw123456" | sudo debconf-set-selections12 RUN echo "mysql-server-5.6 mysql-server/root_password_again password pw123456" | sudo debconf-set-selections13 RUN apt-get -y install mysql-server-5.614 RUN apt-get -y install git curl php5 php-guzzle php5-mysql nginx php5-fpm15 RUN apt-get install -y python-pip python-m2crypto16 RUN pip install cymysql17 RUN cd /opt; git clone -b manyuser https://github.com/mengskysama/shadowsocks.git18 RUN rm -f /opt/shadowsocks/shadowsocks/Config.py19 RUN rm -f /opt/shadowsocks/shadowsocks/config.json20 RUN apt-get -y install supervisor21 RUN cd /opt; git clone https://github.com/maxidea-com/ss-panel.git22 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin --filename=composer23 RUN cd /opt/ss-panel/; composer install24 RUN chmod -R 777 /opt/ss-panel/storage25 RUN rm -f /etc/nginx/sites-available/default26 27 ADD Config.py /opt/shadowsocks/shadowsocks/Config.py28 ADD config.json /opt/shadowsocks/shadowsocks/config.json29 ADD shadowsocks.conf /etc/supervisor/conf.d/shadowsocks.conf30 ADD supervisor.conf /etc/supervisor/conf.d/supervisor.conf31 ADD 3line.sh /opt/3line.sh32 ADD mysql-init.sh /opt/mysql-init.sh33 ADD .env /opt/ss-panel/.env34 ADD default /etc/nginx/sites-available/default35 36 RUN /bin/bash /opt/3line.sh37 RUN service mysql start38 RUN /bin/bash /opt/mysql-init.sh39 40 RUN apt-get clean && apt-get autoclean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*41 42 EXPOSE 80 1025 1026 1027 102843 44 45 CMD ["/usr/bin/supervisord"] 46 47 48 # contact49 MAINTAINER SimonXu, maxidea@gmail.com