Docker-wordpress

[root@2c4g3m ~]# cd /usr/local/src/
[root@2c4g3m src]# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

[root@2c4g3m src]# systemctl start docker

[root@2c4g3m src]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete 
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


[root@2c4g3m src]# vim /etc/docker/daemon.json

[root@2c4g3m src]# cat /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://hub-mirror.c.163.com"
  ]
}

[root@2c4g3m src]# sudo systemctl daemon-reload
[root@2c4g3m src]# sudo systemctl restart docker


[root@2c4g3m src]# docker info
·········
 Registry Mirrors:
  https://dockerhub.azk8s.cn/
  https://hub-mirror.c.163.com/
 Live Restore Enabled: false

[root@2c4g3m src]# docker pull wordpress:latest

在这里插入图片描述

[root@2c4g3m src]# docker pull mariadb:10.5

在这里插入图片描述

[root@2c4g3m src]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
wordpress     latest    bc5f6567b763   4 days ago      550MB
mariadb       10.5      3a348a04a815   2 weeks ago     407MB
hello-world   latest    bf756fb1ae65   11 months ago   13.3kB


[root@2c4g3m src]# docker run --name=mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /etc/mariadb/data:/var/lib/mysql -d --restart=always mariadb:10.5
e40517cf51069580e1832781f44484e573d90e005a41a37bda83e99340a1e8f4


[root@2c4g3m src]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED             STATUS                         PORTS                    NAMES
e40517cf5106   mariadb:10.5   "docker-entrypoint.s…"   39 seconds ago      Up 37 seconds                  0.0.0.0:3306->3306/tcp   mariadb
367ce2652782   hello-world    "/hello"                 About an hour ago   Exited (0) About an hour ago                            relaxed_rosalind
[root@2c4g3m src]# docker exec -it e40517cf5106 /bin/bash
root@e40517cf5106:/# 
root@e40517cf5106:/# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.8-MariaDB-1:10.5.8+maria~focal mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
MariaDB [(none)]> create database wordpress1;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> create user 'wordpress1'@'%' identified by '1q2w3e';
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> grant all privileges on wordpress.* to 'wordpress1'@'%' identified by '1q2w3e';
Query OK, 0 rows affected (0.006 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)


tty1

[root@2c4g3m ~]# docker run --name=wordpress -p 80:80 -v /data/likai/wordpress:/var/www/html -d --restart=always wordpress:latest
4998ece927e9c445959a69e074391eedcc9814a27d49c62dc577e46b44961010


[root@2c4g3m ~]# ss -ntlp
State      Recv-Q Send-Q           Local Address:Port                          Peer Address:Port              
LISTEN     0      128                          *:22                                       *:*                   users:(("sshd",pid=1385,fd=3))
LISTEN     0      128                       [::]:3306                                  [::]:*                   users:(("docker-proxy",pid=23433,fd=4))
LISTEN     0      128                       [::]:80                                    [::]:*                   users:(("docker-proxy",pid=24767,fd=4))
[root@2c4g3m ~]# 

在这里插入图片描述

上传文件大小修改

[root@2c4g3m ~]# docker ps -a
CONTAINER ID   IMAGE              COMMAND                  CREATED       STATUS                   PORTS                    NAMES
4998ece927e9   wordpress:latest   "docker-entrypoint.s…"   6 hours ago   Up 6 hours               0.0.0.0:80->80/tcp       wordpress
e40517cf5106   mariadb:10.5       "docker-entrypoint.s…"   6 hours ago   Up 6 hours               0.0.0.0:3306->3306/tcp   mariadb
367ce2652782   hello-world        "/hello"                 7 hours ago   Exited (0) 7 hours ago                            relaxed_rosalind

[root@2c4g3m ~]# docker exec -it 4998ece927e9 /bin/bash

root@4998ece927e9:/var/www/html# cd /var/www/html/

root@4998ece927e9:/var/www/html# vim .htaccess
root@4998ece927e9:/var/www/html# cat .htaccess
# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

php_value post_max_size 24M
php_value upload_max_filesize 8M
# END WordPress

在这里插入图片描述

解决报错:Error establishing a database connection

docker run --name=mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /etc/mariadb/data:/var/lib/mysql -d --restart=always mariadb:latest

docker run --name=wordpress -p 80:80 -v /data/likai/wordpress:/var/www/html -d --restart=always wordpress:latest



create user 'wordpress2'@'%' identified by '1q2w3ee';

MariaDB [(none)]> create user 'wordpress2'@'%' identified by '1q2w3ee';
Query OK, 0 rows affected (0.003 sec)


grant all privileges on wordpress1 to 'wordpress2'@'%' identified by '1q2w3ee';

flush privileges;


MariaDB [(none)]> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+----------------------------------+
| query                            |
+----------------------------------+
| User: 'mysqld'@'%';              |
| User: 'root'@'%';                |
| User: 'server'@'%';              |
| User: 'wordpress1'@'%';          |
| User: 'wordpress2'@'%';          |
| User: 'mariadb.sys'@'localhost'; |
| User: 'root'@'localhost';        |
+----------------------------------+

ALTER USER 'root'@'%' IDENTIFIED BY '123456';
[root@VM-0-16-centos wordpress]# pwd
/data/likai/wordpress
[root@VM-0-16-centos wordpress]# vim wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress1' );

/** MySQL database username */
define( 'DB_USER', 'root' );

/** MySQL database password */
define( 'DB_PASSWORD', 'xxxxxx' );

/** MySQL hostname */
define( 'DB_HOST', '172.21.0.16' );     #由于是容器部署,并且腾讯云3306端口没开放,不能用localhost 用eth0的固定IP

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );


[root@VM-0-16-centos wordpress]# ip a |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 172.21.0.16/20 brd 172.21.15.255 scope global eth0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker-compose 是 Docker 官方推出的一个工具,用于定义和运行多个 Docker 容器的应用程序。使用 Docker-compose 部署 WordPress 可以方便地搭建一个完整的 WordPress 环境,包括 WordPress 应用程序、MySQL 数据库和 Nginx Web 服务器。 以下是使用 Docker-compose 部署 WordPress 的步骤: 1. 安装 DockerDocker-compose 工具; 2. 创建一个目录,用于存放 Docker-compose 配置文件和 WordPress 程序文件; 3. 在该目录下创建一个 docker-compose.yml 文件,定义 WordPress、MySQL 和 Nginx 三个容器的配置信息; 4. 在 docker-compose.yml 文件中定义 WordPress 容器的环境变量,包括数据库连接信息、WordPress 网站地址和管理员账号密码等; 5. 运行 docker-compose up 命令启动容器; 6. 访问 WordPress 网站,进行安装和配置。 使用 Docker-compose 部署 WordPress 可以大大简化部署过程,提高开发效率和部署效率。 ### 回答2: WordPress 是一个流行的博客网站和内容管理系统,运行在 PHP 和 MySQL 上。在实际部署中,我们需要同时部署一个 Web 服务器、PHP、MySQL 数据库及其相关的配置。使用 Docker 及其容器编排工具 Docker Compose,可以大大简化这一过程,更加方便地实现 WordPress 的部署与管理。 以下是使用 Docker Compose 部署 WordPress 的步骤: 1.安装 DockerDocker 是一个开源的容器化工具,可以在各种操作系统中安装使用。例如在 Ubuntu 中执行如下命令: ```bash sudo apt install docker.io ``` 2.安装 Docker Compose:Docker Compose 是 Docker 容器编排的工具,可以方便地管理多个容器之间的关系。在 Ubuntu 中可执行如下命令: ```bash sudo apt install docker-compose ``` 3.编写 Docker Compose 文件:在本地新建一个目录,用来存储 Docker Compose 相关的配置文件。在该目录下新建一个名为 docker-compose.yml 的文件。 ```yml version: '3' services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest ports: - '80:80' restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: db_data: ``` 上述配置文件定义两个服务:一个 MySQL 数据库服务和一个 WordPress 服务。MySQL 服务会使用 Docker 官方的 MySQL 镜像,创建一个名为 wordpress 的数据库,同时提供一个超级用户 root,密码为 example。WordPress 服务使用官方的 WordPress 镜像,设置 WordPress 使用 MySQL 数据库存储数据,同时绑定主机 80 号端口到容器内的 80 号端口。 4.启动 Docker 容器:在配置好 Docker Compose 文件后,执行以下命令启动容器: ```bash docker-compose up -d ``` 上述命令将启动 Docker Compose,加载配置文件,并后台启动相应的容器。在成功启动时,我们可以使用如下命令查看正在运行的容器: ```bash docker ps ``` 可以看到已经成功启动了两个容器,一个是 MySQL 服务的容器,一个是 WordPress 服务的容器。 5.访问 WordPress:在浏览器中输入服务器 IP 地址,即可访问 WordPress 管理界面。根据需要进行相应的 WordPress 管理操作。 在此过程中,我们使用 DockerDocker Compose 工具编排相关容器,大大简化了 WordPress 的部署和管理。通过利用 Docker 容器隔离、快速启动与停止等特性,可以实现灵活高效的 WordPress 运维和开发。 ### 回答3: Docker-Compose是Docker的一个简化版本,它可以管理多个容器,并将它们组合成一个单一的应用程序。使用Docker-Compose可以轻松地将应用程序部署到一个或多个Docker容器中。在这篇文章中,我们将介绍如何使用Docker-Compose来部署一个WordPress应用程序。 步骤1: 安装DockerDocker-Compose 首先,需要安装DockerDocker-Compose。可以根据官方文档中的指引进行安装。 步骤2: 创建Docker-Compose文件 接下来,我们需要创建一个Docker-Compose文件,以便定义我们的WordPress应用程序。可以在任何地方创建一个新的文件夹并添加一个docker-compose.yml文件。使用vim等文本编辑器打开该文件,并加入以下内容: ```yaml version: '3.3’ services: db: image: mysql:5.7 restart: always environment: MYSQL_DATABASE: wordpress MYSQL_USER: wpuser MYSQL_PASSWORD: wppassword MYSQL_RANDOM_ROOT_PASSWORD: "1" volumes: - db_data:/var/lib/mysql networks: - wpnetwork wordpress: depends_on: - db image: wordpress:latest restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wpuser WORDPRESS_DB_PASSWORD: wppassword WORDPRESS_DB_NAME: wordpress volumes: - ./wordpress:/var/www/html ports: - "8000:80" networks: - wpnetwork networks: wpnetwork: volumes: db_data: ``` 上面的Docker-Compose文件中定义了两个服务:db和wordpress。db用于存储WordPress的数据,而wordpress则用于运行WordPress应用程序本身。 db服务是使用MySQL 5.7镜像构建的,并带有一些环境变量来定义MySQL数据库的名称、用户名和密码。它还使用了一个卷来将数据挂载到宿主机上。这样做是为了方便备份和恢复数据。 wordpress服务是使用WordPress的最新镜像构建的。它使用了depends_on关键字,表示在运行wordpress服务之前需要先启动db服务。wordpress服务也映射了宿主机的端口8000到容器端口80。此外,它还将容器内的WordPress代码保存到宿主机上,以便备份和部署。 步骤3: 启动服务 在Docker-Compose文件所在的目录中,可以通过以下命令启动WordPress应用程序: ``` docker-compose up -d ``` 这些命令将会在后台启动运行WordPress服务。在启动过程中,Docker将下载所需要的MySQL和WordPress镜像,并自动启动这些镜像所构建的容器。 步骤4: 访问WordPress 现在,可以通过在浏览器中输入http://localhost:8000来访问WordPress。如果一切正常,应该会看到WordPress的配置页面。在这个页面上,可以设置WordPress的名称、用户名和密码等信息。 总结 本文介绍了如何使用Docker-Compose来构建和部署一个WordPress应用程序。通过这种方法,可以轻松地将WordPress应用程序部署到一个或多个Docker容器中,而不需要手动配置每个容器。Docker-Compose的强大功能为DevOps团队提供了一个轻松的方式来构建和部署复杂的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值