这次我打算写一个实战教程,以前写的教程大多数是根据自己掌握的知识去写的,并非实战,这次试一下吧
首先docker这个东西我强烈推荐学习,因为真的很好用
1、服务安装
1.1、安装docker
首先,使用yum安装docker,命令如下
yum install -y docker
安装完的截图如下
1.2、配置加速镜像
请通过此篇进行配置:国内Docker镜像加速汇总
配置完成之后,使用下面的命令进行重启
systemctl daemon-reload;systemctl restart docker
systemctl enable docker
2、创建容器
2.1、创建MySQL容器
接下来就是创建容器了,首先我们的网站需要记录信息,有账号密码,所以第一个先创建数据库容器,命令如下
docker pull mysql:5.7
docker run -tid -p 3306:3306 --name=mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 /bin/bash
备注:
- docker run :启动容器
- -d:后台运行容器
- -e MYSQL_ROOT_PASSWORD=123456:指定容器的环境参数,此处初始化MariaDB的root密码
- -p 3306:3306:端口映射,这里将容器内的3306端口映射到本机的3306端口--name=mysql #设置这个容器的名称为mysql
mysql:5.7 :通过mysql:5.7镜像创建容器
2.2、创建wordpress容器
创建之前可以先拉镜像(也可以不事先拉取,因为创建容器的时候会自动检测,如果本地找不到指定的镜像则自动从仓库拉)
docker pull wordpress
拉取过程:
root@l:~# docker pull wordpress
Using default tag: latest
latest: Pulling from library/wordpress
bb79b6b2107f: Pull complete
80f7a64e4b25: Pull complete
da391f3e81f0: Pull complete
8199ae3052e1: Pull complete
284fd0f314b2: Pull complete
f38db365cd8a: Pull complete
1416a501db13: Pull complete
be0026dad8d5: Pull complete
7bf43186e63e: Pull complete
c0d672d8319a: Pull complete
645db540ba24: Pull complete
6f355b8da727: Pull complete
aa00daebd81c: Pull complete
98996914108d: Pull complete
69e3e95397b4: Pull complete
5698325d4d72: Pull complete
b604b3777675: Pull complete
57c814ef71bc: Pull complete
a336d2404e01: Pull complete
2e2e849c5abf: Pull complete
Digest: sha256:4fb444299c3e0b1edc4e95fc360a812ba938c7dbe22a69fb77a3f19eefc5a3d3
Status: Downloaded newer image for wordpress:latest
获取成功之后,我们来看一下我们有哪些镜像
docker images
root@l:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest 984d142b153e 2 days ago 546MB
debian 10 1510e8501783 3 weeks ago 114MB
zabbix/zabbix-server-mysql latest 58e1ce60b11e 7 weeks ago 67.2MB
mysql 8 e1d7dc9731da 7 weeks ago 544MB
debian 9 27f9bc730bd1 8 weeks ago 101MB
debian <none> f6dcff9b59af 8 weeks ago 114MB
mariadb 10 b28df07deb6c 2 months ago 407MB
mariadb latest b28df07deb6c 2 months ago 407MB
centos 7 7e6257c9f8d8 2 months ago 203MB
centos 8 0d120b6ccaa8 2 months ago 215MB
centos latest 0d120b6ccaa8 2 months ago 215MB
mysql 5.7 718a6da099d8 3 months ago 448MB
mysql 8.0 0d64f46acfd1 3 months ago 544MB
debian latest ee11c54e6bb7 3 months ago 114MB
现在我们来创建一个word press镜像,并使之与MySQL镜像互相连接,也就是直接采用数据库镜像的数据库服务
docker run -tid -p 80:80 --link mysql:db wordpress
创建结果:
root@l:~# docker run -tid -p 80:80 --link mysql:db wordpress
d1263d635127609147cf0e618aae0f2f7f841b214958ce0d84cd6d6fd2ff66a6
root@l:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1263d635127 wordpress "docker-entrypoint.s…" 18 seconds ago Up 17 seconds 0.0.0.0:80->80/tcp vigilant_bhaskara
ba6d0c93793e mysql:5.7 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
b31e7fa60187 debian:10 "/bin/bash" 2 days ago Exited (0) 2 days ago ftp_rw
3a6ca1349872 centos:7 "/usr/sbin/init" 6 weeks ago Exited (255) 3 weeks ago musing_sinoussi
b17dd08b53c8 centos:7 "/usr/sbin/init" 7 weeks ago Exited (255) 7 weeks ago 0.0.0.0:33061->3306/tcp db
fec17fdafa0c zabbix/zabbix-server-mysql "/sbin/tini -- /usr/…" 7 weeks ago Exited (143) 7 weeks ago zabbix-server-mysql
root@l:~#
因为没设置容器名称,所以如果对容器名称有要求的话,可以对该容器重命名
docker reaname ${容器名/ID} ${新的名称}
修改结果如下:
root@l:~# docker rename vigilant_bhaskara wordpress
root@l:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1263d635127 wordpress "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp wordpress
ba6d0c93793e mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
b31e7fa60187 debian:10 "/bin/bash" 2 days ago Exited (0) 2 days ago ftp_rw
3a6ca1349872 centos:7 "/usr/sbin/init" 6 weeks ago Exited (255) 3 weeks ago musing_sinoussi
b17dd08b53c8 centos:7 "/usr/sbin/init" 7 weeks ago Exited (255) 7 weeks ago 0.0.0.0:33061->3306/tcp db
fec17fdafa0c zabbix/zabbix-server-mysql "/sbin/tini -- /usr/…" 7 weeks ago Exited (143) 7 weeks ago zabbix-server-mysql
root@l:~#
3、初始化部署
3.1、访问安装程序
这时候我们来浏览器访问服务器地址,因为我是本地部署的,所以我的访问地址是:
http://localhost
在浏览器输入网址之后,进入wordpress语言选择界面
3.2、选择语言
这时候已经可以配置网站信息,在这里选择我们的中文之后,点击继续:
3.3、配置数据库信息
点击继续之后,进入数据库配置提示信息:这一步的配置提示不用管,直接下一步
然后进入这个界面:
这时候我们需要查看MySQL容器的IP地址,然后进入MySQL容器创建一个数据库给wordpress使用,操作如下:
3.4、创建数据库
首先进入容器:
docker exec -ti mysql /bin/bash
然后尝试登录:
root@ba6d0c93793e:/# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
此时提示服务未运行,所以我们需要先启动服务:
查询到地址之后,还要创建一个wordpress的数据库,所以我们要进入数据库容器
docker exec -it mariadb /bin/bash ##进入数据库容器
进入之后,登录数据库
mysql -uroot -p
上面两条命令的执行截图如下
进入之后,我们需要创建一个数据库给word press使用,所以这时候输入
create database wordpress;
然后新建一个数据库用户用于专属使用wordpress,第一个涂抹点就是用户名,第二个就是密码;%代表允许任何主机登陆,可以输入特定的IP
CREATE USER 'user'@'%' IDENTIFIED BY 'passwd';
创建完成之后给予该用户相关操作权限,下面这个命令就是给该用户对wordpress数据库所有的操作权限
grant all on wordpress.* to 'user'@'%' with grant option;
最后刷新权限
flush privileges;