docker,mysql,wordpress搭建个人博客
Posted 寻梦&之璐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker,mysql,wordpress搭建个人博客相关的知识,希望对你有一定的参考价值。
文章目录
设置仓库
更新 apt 包索引
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 再次更新软件源
sudo apt-get -y update
# 安装 Docker CE 版
sudo apt-get -y install docker-ce
安装 Docker Engine-Community
更新 apt 包索引
sudo apt-get update
安装最新版本的 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
列出可用版本(注:这里安装特定版本,所以安装前需要列出可用版本)
apt-cache madison docker-ce
安装
这里选择 5:19.03.15~3-0~ubuntu-focal
列表中第一个版本,这只是个人建议,这个版本不是最新也不是最旧,其实使用起来差距不大,
sudo apt-get install docker-ce=5:19.03.15~3-0~ubuntu-focal docker-ce-cli=5:19.03.15~3-0~ubuntu-focal containerd.io
测试是否成功
sudo docker run hello-world
检测安装情况
sudo docker version
搭建个人博客
失败案例
docker pull mysql 拉取mysql镜像
docker pull wordpress 拉取wordpress镜像
docker run --name sql -p 3306:3306 -d mysql
//参数的含义:
//其中run表示创建一个新的容器并运行一个命令,
//--name 后面跟的就是这个容器的名称,可以随意取一个,但最好和镜像类似能分别出来
//-p 就是将docker中的端口和宿主机的端口相互映射(前面是宿主机的端口,后面是docker内的端口)
//-d表示创建的是一个在后台运行的容器, 后台运行容器,并返回容器ID
//最后的mysql就是镜像名(当然也可以使用镜像id,他是唯一的,使用docker images就可以查看到镜像的id)
这里呢,端口被那个小皮面板给占了,我把小皮面板里的mysql关闭后,就创建正常,但是无法启动,启动一秒就关闭,查了一下日志,报如下错误:
docker logs cea56de6f8d1
创建容器mysql
最后用了下面这种才解决那个日志报错:
docker run --name mysql -d -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
紧接着其它操作
//表示在容器sql 中开启一个交互模式的终端
docker exec -it sql /bin/bash 进入到sql容器的内部
//下面就是Mysql的一些操作了
//进入到mysql数据库的内部,初始账号和密码都是root
mysql -uroot -proot
//查看用户信息,host为 % 表示不限制ip localhost表示本机使用 plugin非mysql_native_password 则需要修改密码
select host,user,plugin,authentication_string from mysql.user;
//更新user为root,host为% 的密码为123456
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
//更新user为root,host为localhost 的密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
//最终就可以使用navicat远程连接数据库了:root 123456 3306 (端口记得要在安全组中开放)
//退出容器内只需要输入exit即可
创建容器wordpress
docker run --name wordpress \\
-e WORDPRESS_DB_HOST=x.x.x.x:3306 \\
-e WORDPRESS_DB_USER=root \\
-e WORDPRESS_DB_PASSWORD=123456\\
-e WORDPRESS_DB_NAME=wordpress \\
-p 8081:80 \\
-v /root/wordpress/config:/var/www/html \\
-d wordpress\\
//大部分参数在上面配置mysql已经介绍了,这里还用到了一些之前没用到的我们介绍一下
// -v 将wordpress容器内的配置文件挂载到宿主机上,这样就不需要每次通过exec进入到容器内部修改配置文件了
// -e WORDPRESS_DB_NAME=wordpress: 设置wordPress的数据库名称为wordpress;
最后得出这种结论,不知道哪里搞错了,然后从头再来
成功案例
创建数据库文件
root@ubuntu1804:~ mkdir wordpress
root@ubuntu1804:~ cd wordpress/
root@ubuntu1804:~/wordpress vi env_mysql.list
MYSQL_ROOT_PASSWORD=123456
MYSQL_DATABASE=wordpress
MYSQL_USER=wpuser
MYSQL_PASSWORD=wppass
wordpress配置文件
root@ubuntu1804:~/wordpress vi env_wordpress.list
WORDPRESS_DB_HOST=mysql:3306
WORDPRESS_DB_NAME=wordpress
WORDPRESS_DB_USER=wpuser
WORDPRESS_DB_PASSWORD=wppass
WORDPRESS_TABLE_PREFIX=wp_
创建容器mysql
docker run --name mysql -v /data/mysql:/var/lib/mysql --env-file=/root/wordpress/env_mysql.list -d -p 3306:3306 mysql
在容器sql 中开启一个交互模式的终端,因为我服务器上sql太多了,还有一个小皮面板里面有sql
docker exec -it mysql /bin/bash
mysql -uroot -p123456 -h127.0.0.1
查看是否有wordpress数据库
show databases;
创建容器wordpress
docker run -d --name wordpress --link mysql --env-file=/root/wordpress/env_wordpress.list -p 8081:80 wordpress
成功
以上是关于docker,mysql,wordpress搭建个人博客的主要内容,如果未能解决你的问题,请参考以下文章