部署docker joomla
- 单独部署 mysql 5.7
- 单独部署 docker nginx
- 单独部署 docker php-fpm
知识点
1) docker cp
2) docker 环境下的bridge网络模式
3) 立即php-fpm(应用服务器)和web (nginx)之间的关系。
牛逼:
写一个shell脚本,一键部署
步骤
安装3个容器
docker run --name nginx -p 80:80 -d nginx
docker run --name dkphp80 -d bitnami/php-fpm
docker run --name mysql57 -e MYSQL_ROOT_PASSWORD='1qaz!QAZ' -d mysql:5.7
配置nginx服务器
## 复制nginx 容器的配置到宿主机
docker cp nginx:/etc/nginx/conf.d/default.conf .
tee default.conf <<EOF
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html/joomla;
index index.php index.html index.htm ;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html/joomla;
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
EOF
复制文件到宿主机内部
docker cp default.conf nginx:/etc/nginx/conf.d
重启nginx 容器
docker restart nginx
复制joomla源代码解压后的文件夹到发布目录,2个容器都需要复制
docker cp joomla nginx:/usr/share/nginx/html/
docker exec -it dkphp80 mkdir -p /usr/share/nginx/html/
docker cp joomla dkphp80:/usr/share/nginx/html/
创建数据库,容器内部,略过。
启动nginx,phpfpm服务器。
安装过程中joomla报错,按要求删除锁文件如下
[root@master joomla]# docker exec -it dkphp80 bash
root@f5969b28350a:/app# cd /usr/share/nginx/html/joomla/
root@f5969b28350a:/usr/share/nginx/html/joomla# ls
Joomla_4.3.4-Stable-Full_Package.zip administrator cli images installation libraries plugins tmp
LICENSE.txt api components includes language media robots.txt.dist web.config.txt
README.txt cache htaccess.txt index.php layouts modules templates
root@f5969b28350a:/usr/share/nginx/html/joomla# cd installation/
root@f5969b28350a:/usr/share/nginx/html/joomla/installation# ls
INSTALL Joomla1aaLtGJAvknp8vlsJkHZX.txt configuration.php-dist forms index.php language sql template
LICENSE.txt cache favicon.ico includes joomla.php localise.xml src tmpl
root@f5969b28350a:/usr/share/nginx/html/joomla/installation# rm _Joomla1aaLtGJAvknp8vlsJkHZX.txt`

密码 admin : 1qaz2wsx!QAZ
使用docker来安装nexus,如果有docker-compose版本也可以。
1.安装好
2.开通匿名访问
3.开通https
- 如果不开通https,需要使用nginx的https反向代理做。
步骤
- 安装,去cn.bing.com找安装软件,最好到官方上去找
- 创建blob stores,这个存储docker文件的地方
- 创建 hosted docker ,
创建 proxy docker ,
创建 group docker .合上面2个docker库一起,
最后编辑:严锋 更新时间:2025-05-09 15:48