我用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与主机间的网络关系
我用docker搭建的第一个博客的更多相关文章
- 使用hexo搭建属于自己的博客
如果你喜欢拥有自己的博客域名,如果你喜欢折腾,可以先点击luckykun.com,看看效果,再选择要不要进来看看--- 之前一直都在博客园写博客,不过最近在逛园子的时候不小心看到了hexo,简直有种相 ...
- Hello World -- 第一篇博客
今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...
- 使用Hexo+Github搭建属于自己的博客(进阶)
主题的配置:这里以NexT主题作为题材 1.安装NexT,在其文件夹中鼠标右键,点击Git Base Here.输入命令:git clone https://github.com/iissnan/he ...
- Hexo+GitHub+Netlify一站式搭建属于自己的博客网站
喜欢的话请关注我的个人博客我在马路边https://hhongwen.cn/,此文为博主原创,转载请标明出处. 更好的阅读体验请点击查看:Hexo+GitHub+Netlify一站式搭建属于自己的博客 ...
- 用express搭建一个简单的博客系统
转自:https://blog.csdn.net/qq_29721837/article/details/62055603 Express 简介 Express 是一个简洁而灵活的 node.js W ...
- Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记
前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...
- Hello World -- 第一篇博客 -- 活着的意义
今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...
- Docsify+腾讯云对象存储 COS,一键搭建云上静态博客
最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...
- hugo建站 | 我的第一个博客网站
前言 博客地址 - https://billie52707.cn 1. 建博客的初衷? 2020那一年,八月的第一天,我还是像往常一样打开我的域名网站,本以为还是会像以前一样显示每日一图的界面,结果出 ...
- 第一篇博客:Hello World
2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...
随机推荐
- 面向切面编程AOP[四](java AnnotationAwareAspectJAutoProxyCreator与ioc的联系)
前言 拿出上一篇的内容: AnnotationAwareAspectJAutoProxyCreator extends AspectJAwareAdvisorAutoProxyCreator Aspe ...
- python异步字符串查找,asyncio和marisa_trie
自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的ner import pandas as pd import asyncio # data = pd. ...
- 【GDKOI 2024 TG Day2】不休陀螺(top) 题解
考虑一个卡牌区间怎样才不是"陀螺无限". 一个是费用在打到一半时费用就不够了.考虑构造一个卡牌序列使其尽量能够在打到一半时费用就不够,如何构造呢? 把 \(a_i > b_i ...
- mysql错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- JVM简明笔记3:类加载机制
1 类的加载 类的加载指的是将类的 .class 文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class 对象,用来封装类在方法区内的数据结 ...
- 13_总结Vue数据监测
总结: Vue监视数据的原理: 1.vue会监视data中所有层次的数据 2.如何监视对象中的数据? 通过setter实现监视,且要在new V ...
- KubeNode:阿里巴巴云原生 容器基础设施运维实践
简介: 目前 KubeNode 已经覆盖了阿里巴巴集团的所有的 ASI 集群,接下来,将随着阿里巴巴集团"统一资源池"的项目,推进 KubeNode 覆盖更大的范围.更多的场景,让 ...
- 阿里云EMR Remote Shuffle Service在小米的实践
简介:阿里云EMR自2020年推出Remote Shuffle Service(RSS)以来,帮助了诸多客户解决Spark作业的性能.稳定性问题,并使得存算分离架构得以实施,与此同时RSS也在跟合作 ...
- 直播回顾:如何对付臭名昭著的 IO 夯?诊断利器来了 | 龙蜥技术
简介:听到IO夯总是让人头疼,那有没有可以分析IO夯问题的利器? 编者按:sysAK(system analyse kit),是龙蜥社区(OpenAnolis)系统运维 SIG 下面的一个开源项目, ...
- Quick BI产品核心功能大图(四):Quick引擎加速--十亿数据亚秒级分析
简介: 随着数字化进程的深入,数据应用的价值被越来越多的企业所重视.基于数据进行决策分析是应用价值体现的重要场景,不同行业和体量的公司广泛依赖BI产品制作报表.仪表板和数据门户,以此进行决策分析. ...