部署docker joomla

  1. 单独部署 mysql 5.7
  2. 单独部署 docker nginx
  3. 单独部署 docker php-fpm

http://192.168.10.174/

知识点
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
`
![](/uploads/linux/images/m
27ad21b3c2dfefe6f42e73feb59c7d23_r.png)
密码 admin : 1qaz2wsx!QAZ

使用docker来安装nexus,如果有docker-compose版本也可以。

1.安装好
2.开通匿名访问
3.开通https

  1. 如果不开通https,需要使用nginx的https反向代理做。

步骤

  1. 安装,去cn.bing.com找安装软件,最好到官方上去找
  2. 创建blob stores,这个存储docker文件的地方
  3. 创建 hosted docker ,
    创建 proxy docker ,
    创建 group docker .合上面2个docker库一起,
作者:严锋  创建时间:2023-09-27 16:28
最后编辑:严锋  更新时间:2025-05-09 15:48