运行httpd和wordpress的docker镜像

本文介绍如何在云主机上使用Docker快速部署WordPress和Web服务,包括配置CentOS系统,运行httpd镜像提供网页服务,以及通过WordPress和MySQL镜像构建博客网站。

买了腾讯的云主机,完全自己搭建服务太麻烦。于是安装了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的变更还未进行,因此在我仔细按照该文进行操作还是不行,反复几次到利用搜索工具最终解决错误的原因并规避,还是费了一番周折。

使用docker搭建wordpress网站

其他相关命令:

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

 

<think>嗯,用户问有没有开源的Docker镜像提供对应的服务。我需要先理解他们具体需要什么服务,但问题中没有明确说明是哪种服务。可能用户是指某个特定领域的服务,比如Web服务器、数据库,或者某种应用框架? 首先,我应该考虑常见的Docker镜像有哪些。Docker Hub上有大量的官方社区维护的镜像,比如Nginx、MySQL、PostgreSQL、Redis这些基础服务。可能用户需要的是这些常见的服务镜像。 不过,用户提到“对应的服务”,可能是指与他们当前项目相关的服务。比如,如果他们是在做机器学习,可能需要TensorFlow或PyTorch的镜像;如果是Web开发,可能需要Node.js或Django的镜像。或者用户可能是在寻找某个特定工具,比如Jenkins用于CI/CD,或者Elasticsearch用于搜索。 另外,用户可能对如何查找这些镜像不太清楚。我需要指导他们如何搜索Docker Hub,使用docker search命令,或者直接访问Docker Hub网站搜索关键词。同时,提醒他们注意镜像的官方认证、下载量、更新频率社区评价,以确保安全可靠。 可能还需要提到一些知名的开源项目提供的官方Docker镜像,比如WordPress、MongoDB、Apache等。此外,如果用户有具体需求,比如需要集成多个服务的Docker Compose配置,也可以建议他们查找相关的docker-compose.yml示例。 最后,确保回答结构清晰,分点说明,并提供实际例子,帮助用户更好地理解操作。需要检查是否有遗漏,比如安全性问题,或者如何验证镜像的可靠性。如果有必要,可以提到使用Docker Scout扫描镜像漏洞,或者查看GitHub仓库的活跃度来判断镜像的维护情况。</think>以下是关于开源Docker镜像的详细介绍获取指南: 1. **Docker镜像仓库分类** - **官方镜像(Official Images)**:由软件开发商直接维护,格式为`<软件名>`,如: ```dockerfile FROM nginx:alpine # Web服务器 FROM mysql:8.0 # 数据库 FROM python:3.9-slim # 编程语言环境 ``` - **认证镜像(Verified Publisher)**:企业/组织认证的镜像,格式为`<组织名>/<镜像名>` - **社区镜像(Community Images)**:开发者个人维护,格式为`<用户名>/<镜像名>` 2. **常用服务镜像示例** | 服务类型 | 镜像名称 | 使用场景 | |----------------|-----------------------------------|-------------------------| | Web服务器 | `httpd`, `nginx` | 网站托管 | | 数据库 | `mysql`, `postgres`, `mongo` | 数据存储 | | 缓存服务 | `redis`, `memcached` | 高速缓存 | | 消息队列 | `rabbitmq`, `kafka` | 异步通信 | | CI/CD工具 | `jenkins/jenkins`, `gitlab/gitlab` | 持续集成/交付 | 3. **镜像获取方式** - **Docker CLI搜索**: ```bash docker search <关键词> # 例:docker search tensorflow ``` - **Docker Hub网站**: 访问 https://hub.docker.com 直接搜索,支持: - 多条件筛选(操作系统/架构/认证状态) - 查看版本标签(Tags) - 阅读完整使用文档 4. **镜像验证要点**(安全性检查) ```bash # 查看镜像层构成 docker history <镜像名> # 扫描漏洞(需Docker Desktop≥4.8) docker scout quickview <镜像名> # 检查数字签名 docker trust inspect <镜像名> ``` 5. **特殊需求解决方案** - **多服务集成**:使用`docker-compose.yml`组合多个服务 ```yaml version: '3' services: web: image: wordpress:php8.2 ports: - "8080:80" db: image: mariadb:10.11 environment: MYSQL_ROOT_PASSWORD: example ``` - **GPU支持**:选择带cuda标签的镜像,如`nvidia/cuda:12.2.0-base` - **轻量化部署**:使用`alpine`版本(如`node:20-alpine`比标准版小70%) **建议实践流程**: 1. 优先选择Docker Verified或Official镜像 2. 查看镜像的GitHub仓库(描述区通常有链接) 3. 检查最近更新日期(避免使用超过1年未更新的镜像) 4. 测试运行`docker run --rm -it <镜像名> sh`进入容器检查内部结构 遇到具体场景时,可提供更多细节(如:需要部署机器学习API/搭建电商平台/构建监控系统),我会给出针对性的镜像推荐组合方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值