我用docker搭建的第一个博客
其实很早就听说了docker这个东西,一直以来想玩不知道拿什么下手,再加上前段时间听了一个思科的年度网络报告讲解里面稍微提了一下docker的优势以及网络即服务的概念。想通了,不是每一步都得亲历亲为,docker就是一种很好的便捷方案,什么lnmp,lamp都不需要自己搭了,直接pull就行,于是乎就现学了一下docker的知识,然后上手一个博客。
在ubuntu中安装docker
#如果之前装过但是不能用可以尝试先写在下面的这几个包
sudo apt-get install docker-ce docker-ce-cli containerd.io
#使用以下指令开启docker服务(一般刚安装晚会自动开启)
sudo systemctl start docker
#使用以下指令检测docker是否成功开启
sudo systemctl status docker
显示绿色的running表示正在运行
使用docker配置博客相关的程序如lamp这种
可以使用网易的镜像站搜索也可以使用docker自带的search搜索
这里我使用网易的镜像站提供的镜像站
先看一下下面的说明
具体参数后面部署的时候在提
这里的选项都是要求配置一个数据库的
看来这个懒没法偷了(我们的给他整一个数据库)
于是我程热打铁搜了以下mysql的docker镜像
同样地配方,同样的pull
这里我们来看一下网易给的mysql的帮助文档
东西挺多的
大概概括以下就是配置mysql的用户名(默认为root)配置密码,配置数据库….
至此所有的环境都陪好了,是不是挺轻松的,即不需要整mysql的密码,也不需要搭lamp的环境。接下来就是利用镜像创建对应的容器并且建立容器见的连接
创建容器启动我的博客
由于wordpress需要一个数据库才能起来,所以我们先配这个mysql
先看一下要什么参数
MYSQL_ROOT_PASSWORD
: 设置 mysql 数据库的密码eg:MYSQL_ROOT_PASSWORD
=123qweMYSQL_DATABASE
: 设置 mysql 的数据库名称eg:MYSQL_DATABASE
=myblogMYSQL_USER
: 设置 mysql 的数据库用户建议使用默认的root
于是可以用以下命令来创建一个数据库容器
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123qwe -e MYSQL_DATABASE=myblog -d mysql5.8
参数解释
- run 运行一个docker程序
- -p 3306:3306 端口映射将容器里的3306映射到主机的3306端口,注意前面的表示主机上的端口,后面表示的是容器内的端口
- -e M
YSQL_ROOT_PASSWORD
=123qwe 设置root密码,注意这种镜像需要的参数每一个前面都要加一个 -e - -d mysql5.8 表示使用mysql5.8这个镜像来创建docker具体可以看下面这个图片(应该与我的不一样)
这里提一下docker查看容器ip的方法
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
简单解释以下
前面表示查看ip信息
后面的$(docker ps -aq)便是docker的id可以通过docker ps查看
我的结果如下
我的ip是172.17.0.2
可以使用[mysql -u root -h 172.17.0.2 -p 123qwe]尝试连接,一般主机与docker之间的网络是联通的可以连上
或者使用mysql -u root -h 172.17.0.2 -p 123qwe 应为我们做了端口映射注意mysql会默认使用3306这个端口所以无需指定端口
于是我们就用一句话创建了一个数据库
接下来就是创建一个wordpress连接到这个数据库
同样先看一下需要的参数
WORDPRESS_DB_HOST
: wordpress 连接数据库的参数默认 ip:portWORDPRESS_DB_USER
: wordpress 连接数据库的用户WORDPRESS_DB_PASSWORD
: wordpress 连接数据库的密WORDPRESS_DB_NAME
: wordpress 数据库的名称默认为:wordpress
使用以下语句创建一个docker
docker run -e WORDPRESS_DB_HOST=172.17.0.2:3306 -e WORDPRESS_DB_USER=root WORDPRESS_DB_PASSWORD=123qwe -e WORDPRESS_DB_NAME=myblog -p 8000:80 -d wordpress
这里只解释部分参数
WORDPRESS_DB_HOST=172.17.0.2:3306 这里的ip是容器的ip,原因是容器间的网络是互通的,也可以使用主机的ip,原因之前提过,但是不能使用127.0.0.1
-p 8000:80 将容器的80端口映射到主机里面
至此,已经可以正常通过浏览器访问这个博客了,访问方式为主机ip:8000 后面为什么使用8000这个前面解释过
我的博客是http://39.103.230.97:8000
最后谈以下用docker搭建的感觉
最直观的感觉是简单,总体上我只用了4句话就建立了一个博客,而且基本上不用担心出什么问题。
接下来的方向
1.docker如何实现内容的移植(其实这是我第二次写这篇博客,第一次写在我平时用的电脑上,然后移植的时候发现内容没了,电脑上的资料也删了)
2.docker与主机间的网络关系