好物优选点击查看详情 京东购买

暂无内容

运行httpd和wordpress的docker镜像

买了腾讯的云主机,完全自己搭建服务太麻烦。于是安装了centos系统,装了docker,直接下载docker镜像来运行。

web服务比较简单,直接把httpd镜像拉下来运行就行了。

sudo docker run -dit --name my-httpd -p 8080:80 -v /home/user1/www_root/:/usr/local/apache2/htdocs/ httpd

上面的命令运行httpd容器镜像,将本地/home/user1/www_root/ 挂载到容器中/usr/local/apache2/htdocs/ httpd,http的网页就放在/home/pxy/www_root/目录中。

网页访问方式:http://you_ip_address:8080/

-d: 容器在后台运行
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

wordpress运行稍微复杂一些,需要wordpress和mysql两个镜像协同工作。

###运行mysql容器 sudo docker run --name mysql-wordpress -d -v /home/user1/mysql_wp_root:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="my_sql_password" mysql:8.0.1 ###运行wordpress容器 sudo docker run --name my-wordpress -d -p 8090:80 --link mysql-wordpress:mysql -v /home/user1/wordpress_root:/var/www/html wordpress

本地目录 /home/user1/wordpress_root和/home/user1/mysql_wp_root 分别作为wordpress和mysql的存储目录,映射到容器的指定目录下。

mysql容器运行时需要设置root密码;而wordpress容易运行时需要指定连接的mysql数据库。

从上面可以看到,访问wordpress的方法为:http://you_ip_address:8090/

云主机上当前运行的容器有如下三个:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b154e4f91721 wordpress "docker-entrypoint..." 2 weeks ago Up 2 weeks 0.0.0.0:8090->80/tcp my-wordpress 6af2dec5f4db mysql:8.0.1 "docker-entrypoint..." 2 weeks ago Up 2 weeks 3306/tcp mysql-wordpress 564a50ac029b httpd "httpd-foreground" 2 weeks ago Up 2 weeks 0.0.0.0:8080->80/tcp my-httpd 

可以看到mysql后面有个8.0.1,说明对于mysql,没有拉最新的image。如果使用mysql最新版本的image,运行wordpress会出错,通过 sudo docker logs mysql-wordpress 查看错误日志并搜索错误信息关键字,可以看到大约时从8.0.3开始,版本中一个认证相关的更改会引起这个错误,因此尝试使用略微旧一点的mysql镜像,这里使用8.0.1,终于运行ok了。

关于wordpress的搭建,可以参考下面这个网页,写的比较详细,不过大概那时候引起错误的mysql的变更还未进行,因此在我仔细按照该文进行操作还是不行,反复几次到利用搜索工具最终解决错误的原因并规避,还是费了一番周折。

其他相关命令:

sudo docker stop mysql-wordpress # 停止容器 sudo docker rm mysql-wordpress # 删除容器

原文链接:https://blog.csdn.net/sharpbladepan/article/details/103658772

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享