准备工作开头的准备工作还是那么两样,安装 docker 和配置镜像加速器,如果还不会的同学可以看下我的《初识 docker》,这是预备知识。然后今天我们是用 docker compose 来实现的,所以还需要安装下 docker compose,我们先打开官网看到上面有步骤。我们按步骤操作下sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose –version
测试一下,安装成功了拉取镜像安装个人博客的核心是 wordpress 开源框架,源码界面全都帮我们集成好了,所以我们只需要拉取它的镜像,当然我们还需要一个数据库来存储数据,所以还得拉一个 mysql。docker pull wordpress
docker pull mysql:5.6
创建 yml 文件首先说下什么是 docker compose,前面我们使用 docker 的时候,定义 dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。而 docker compose 的作用就是可以让我们轻松、高效的管理容器,它是一个用于定义和运行多容器 docker 的应用程序工具。1、先创建一个文件夹 mkdir -p /jackxu/wordpress
2、进入到目录,创建一个 yml 文件。(这里我指定了一个网络,如果不指定的话会默认帮我们创建一个 bridge 类型的网络。)vi docker-compose.yml
version: '3'
services:
wordpress:
image: wordpress
restart: always
ports:
– 80:80
environment:
WORDPRESS\_DB\_HOST: db
WORDPRESS\_DB\_USER: exampleuser
WORDPRESS\_DB\_PASSWORD: examplepass
WORDPRESS\_DB\_NAME: exampledb
networks:
– jackxu-net
volumes:
– wordpress:/var/www/html
db:
image: mysql:5.6
restart: always
environment:
MYSQL\_DATABASE: exampledb
MYSQL\_USER: exampleuser
MYSQL\_PASSWORD: examplepass
MYSQL\_RANDOM\_ROOT\_PASSWORD: '1'
volumes:
– db:/var/lib/mysql
networks:
– jackxu-net
volumes:
wordpress:
db:
networks:
jackxu-net:
driver: bridge
3、把 docker compose 启动起来docker-compose up -d
好,成功了,稳了!配置博客网站接着我们来访问一下 www.jackxu.vip/wp-admin/in… ,进行博客的语言的选择,网站的账号密码选择,一直点下一步下一步,很简单。进入后台可以设置博客的皮肤、名称,发文章,管理评论,管理用户等各种功能。配置好以后,别人就能通过你的域名 www.jackxu.vip/ 访问啦!总结至此,三分钟教你搭建一个个人博客网站全部结束,最后总结几点:本文用的是 docker compose 的方式搭建,如果小伙们不想用的话可以用原生的方式哦,命令如下:docker run -d –name jackmysql -e MYSQL\_ROOT\_PASSWORD=examplepass -e MYSQL\_DATABASE=db\_wordpress -p 3306:3306 mysql:5.6
docker run -d –name jackwordpress –link jackmysql -e WORDPRESS\_DB\_HOST=jackmysql:3306 -e WORDPRESS\_DB\_USER=root -e WORDPRESS\_DB\_PASSWORD=examplepass -e WORDPRESS\_DB\_NAME=db\_wordpress -p 80:80 wordpress
讲解一下 docker-compose.yml 文件里的内容(1)version: '3'
表示docker-compose的版本
(2)services
一个service表示一个container
(3)networks
相当于docker network create app-net
(4)volumes持久化
相当于-v v1:/var/lib/mysql
(5)image
表示使用哪个镜像,本地build则用build,远端则用image
(6)ports
相当于-p 8080:8080
(7)environment
相当于-e
域名访问最后回到开篇提到我的同事也有域名,但是他是用树莓派 + 花生壳的技术,这样有个好处就是省钱,不用买单独的服务器,而缺点是需要一直开机,占用电源、占用地方;有断网服务器不能访问的风险;此外登录主机外网也是不能访问的,只能和树莓派在同一个网络;以及网络运营商可能会封 80 端口等问题。而我比较有钱任性,我是在阿里云买的 jackxu.vip 的域名,以及阿里云的服务器,以及在阿里云备的案,通通都是在阿里云一条龙服务,这么多搞下来金钱时间花的都比较久,所以选用哪种方式小伙们自己选择哈。作者:jack_xuhttps://juejin.im/post/6844904191933022222