其实很早就听说了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这种

一.找一个wordpress的镜像

可以使用网易的镜像站搜索也可以使用docker自带的search搜索

这里我使用网易的镜像站提供的镜像站

先看一下下面的说明

具体参数后面部署的时候在提

这里的选项都是要求配置一个数据库的

看来这个懒没法偷了(我们的给他整一个数据库)

于是我程热打铁搜了以下mysql的docker镜像

同样地配方,同样的pull

这里我们来看一下网易给的mysql的帮助文档

东西挺多的

大概概括以下就是配置mysql的用户名(默认为root)配置密码,配置数据库….

至此所有的环境都陪好了,是不是挺轻松的,即不需要整mysql的密码,也不需要搭lamp的环境。接下来就是利用镜像创建对应的容器并且建立容器见的连接

创建容器启动我的博客

由于wordpress需要一个数据库才能起来,所以我们先配这个mysql

先看一下要什么参数

  • MYSQL_ROOT_PASSWORD: 设置 mysql 数据库的密码eg:MYSQL_ROOT_PASSWORD=123qwe
  • MYSQL_DATABASE: 设置 mysql 的数据库名称eg:MYSQL_DATABASE=myblog
  • MYSQL_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 MYSQL_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:port
  • WORDPRESS_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搭建的第一个博客的更多相关文章

  1. 使用hexo搭建属于自己的博客

    如果你喜欢拥有自己的博客域名,如果你喜欢折腾,可以先点击luckykun.com,看看效果,再选择要不要进来看看--- 之前一直都在博客园写博客,不过最近在逛园子的时候不小心看到了hexo,简直有种相 ...

  2. Hello World -- 第一篇博客

    今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...

  3. 使用Hexo+Github搭建属于自己的博客(进阶)

    主题的配置:这里以NexT主题作为题材 1.安装NexT,在其文件夹中鼠标右键,点击Git Base Here.输入命令:git clone https://github.com/iissnan/he ...

  4. Hexo+GitHub+Netlify一站式搭建属于自己的博客网站

    喜欢的话请关注我的个人博客我在马路边https://hhongwen.cn/,此文为博主原创,转载请标明出处. 更好的阅读体验请点击查看:Hexo+GitHub+Netlify一站式搭建属于自己的博客 ...

  5. 用express搭建一个简单的博客系统

    转自:https://blog.csdn.net/qq_29721837/article/details/62055603 Express 简介 Express 是一个简洁而灵活的 node.js W ...

  6. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  7. Hello World -- 第一篇博客 -- 活着的意义

    今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...

  8. Docsify+腾讯云对象存储 COS,一键搭建云上静态博客

    最近一直在想如何利用 COS 简化静态博客的搭建过程.搜了很多的静态博客搭建过程,发现大部分的静态博客都要通过编译才能生成静态页面.功夫不负有心人,终于让我找到了一个超简洁博客的搭建方法. 效果预览 ...

  9. hugo建站 | 我的第一个博客网站

    前言 博客地址 - https://billie52707.cn 1. 建博客的初衷? 2020那一年,八月的第一天,我还是像往常一样打开我的域名网站,本以为还是会像以前一样显示每日一图的界面,结果出 ...

  10. 第一篇博客:Hello World

    2016年10月10日,双十,好日子,决定开始写第一篇博客,标题想了会,就叫Hello World 吧,哈哈^_^. 首先感谢博客园的管理们能批准我的申请,记得在14年的时候申请过一次,竟然没申请通过 ...

随机推荐

  1. mongodb基础整理篇————聚合操作[三]

    前言 简单整理一下聚合操作. 正文 什么是聚合框架: 作用于一个或多个集合上 对集合的数据进行的一系列运算 将这些数据转换为期望的形式 从效果而言, 聚合框架相当于SQL 查询中的: Group By ...

  2. 面向切面编程AOP[一](java 代码详解)

    前言 说句实话,在工作中,使用的aop不是特别多,但是特别重要,一般是辅助程序,在现代开发者辅助程序相当重要,比如说我们需要打印一些log,但是我们不可能去卸载我们的业务程序中,因为这太..... 正 ...

  3. 2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」。 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值。勇者们有一次机会可以击破一个节点泡

    2024-04-17:用go语言,欢迎各位勇者莅临力扣城,本次的挑战游戏名为「力扣泡泡龙」. 游戏的起点是一颗形状如二叉树的泡泡树,其中每个节点的值代表该泡泡的分值.勇者们有一次机会可以击破一个节点泡 ...

  4. javascript现代编程系列教程之五——正零和负零

    在JavaScript中,正零(+0)和负零(-0)都代表数值0,它们在大多数情况下是等价的.然而,在某些特定的场景下,正零和负零的行为会有所不同. 除法操作:当0被用作除数时,正零和负零会产生不同的 ...

  5. javascript现代编程系列教程之一:区块作用域对VAR不起作用的问题

    在JavaScript中,使用var声明的变量具有函数作用域,而不是块级作用域.这意味着在一个函数内部,使用var声明的变量在整个函数范围内都是可见的,包括嵌套的块(如if语句.for循环等).为了避 ...

  6. 力扣1050(MySQL)-合作过至少三次的演员和导演(简单)

    题目: ActorDirector 表: 写一条SQL查询语句获取合作过至少三次的演员和导演的 id 对 (actor_id, director_id) 示例:  建表语句: 1 create tab ...

  7. 力扣378(java&python)-有序矩阵中第 K 小的元素(中等)

    题目: 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素.请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素. 你必须找到一个 ...

  8. PolarDB-X 源码解读系列:DML 之 INSERT IGNORE 流程

    简介: 本文将进一步介绍 PolarDB-X 中 INSERT IGNORE 的执行流程,其根据插入的表是否有 GSI 也有所变化. 作者:潜璟 在上一篇源码阅读中,我们介绍了 INSERT 的执行流 ...

  9. 龙蜥开源内核追踪利器 Surftrace:协议包解析效率提升 10 倍! | 龙蜥技术

    ​简介:如何将网络报文与内核协议栈清晰关联起来精准追踪到关注的报文行进路径呢? ​ 文/系统运维 SIG Surftrace 是由系统运维 SIG 推出的一个 ftrace 封装器和开发编译平台,让用 ...

  10. ARMS企业级场景被集成场景介绍

    简介: ARMS企业级场景被集成场景介绍 通过本次最佳实践内容,您可以看到ARMS OpenAPI可以灵活的被集成到客户链路监控场景,并对其进行可视化图形展示监控信息. 1. 背景信息 应用实时监控服 ...