Docker切换国内镜像下载源
- 修改Docker配置文件/etc/default/docker如下:
DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"
- 重启Docker
service docker restart
添加映射端口
添加映射卷
Docker安装LNMP
Nginx
- 反代
抛个链接吧,没什么难的 —— 参考链接
Mysql
- 配置参考链接
- 导入.sql文件
source /xxx/xx/sxxx.sql - PMA配置文件
根目录下config.inc.php:- $cfg['Servers'][$i]['host'] = 'localhost'; //填写localhost或mysql所在服务器的ip地址,如果mysql和该phpmyadmin在同一服务器,则按默认localhost
- $cfg['Servers'][$i]['port'] = ''; //mysql端口,如果是默认3306,保留为空即可
- "Data truncated for column"错误
- 添加字符长度(我的字段类型为text),所以不存在这个问题。
- 更改字符类型为utf8(已经是UTF8)
- 权限配置 -> 参考链接
PHP环境
//配置ThinkPHP的重写
a2enmod rewrite //开启扩展
修改配置 /etc/apache2/apache2.conf 中所有的AllowOverride None改为All
//安装拓展组件在下面这个地方
cd /usr/local/bin
docker-php-ext-install pdo_mysql mysqli
- 同样是上面这个镜像,当需要安装gd库时,怎么也装不好,初步估计可能是源的问题,后来换了163的Debian源(其他源在apt update时都会出现和缺少一个https有关的包的Error)。
如果不需要更换源,Dockerfile可以这样写:
来源:php7.0-apache官方Docker文档FROM php:7.0-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng-dev \ && docker-php-ext-install -j$(nproc) iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd
- 另外,还会出现诸如此类的问题:
原因是缺少源的GPG public key。The following signatures couldn't be verified because the public key is not available: NO_PUBKEY xxxxxxxxxxxxxxxx
解决方案:sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxxxxxxxxxx
FTP配置
在容器里安装了FTP,怎么也访问不了,后来才知道FTP不只需要一个端口 -> 参考链接
宝塔面板 - 文档
- 开一个centos的容器
注意,安装路径肯定是/www,貌似不好修改,另外一个是ftp.docker run -i -t -d -p 520:520 -p 521:521 -p 580:80 -p 5443:443 -p 888:888 -p 8888:8888 -v /xxxx:/home -v /xxxx:/www --name bt_manage centos
- 进入容器里面执行这些命令``
yum check-update -y yum update -y yum install initscripts wget -y wget -O install.sh http://download.bt.cn/install/install.sh ./install.sh
- 最后输出的是用户名和密码要记下来。
- 可以用反代然后用域名访问但是好像要加个/login?
Discuz
- 拉取Discuz,要注意研究一下是否与php7兼容
git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
- 选取正确的Docker镜像文件,我选用php7.0-apache
映射.../uploads/:/var/www/html - 开启mysqli拓展
docker exec -it discuz /usr/local/bin/docker-php-ext-install mysqli && service apache2 restart
这个apache2可能是httpd - 然后正常访问写数据库即可