其实很早就听说了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. 如何使用Plotly和Dash进行数据可视化

    本文分享自华为云社区<从数据到部署使用Plotly和Dash实现数据可视化与生产环境部署>,作者: 柠檬味拥抱. 数据可视化是数据分析中至关重要的一环,它能够帮助我们更直观地理解数据并发现 ...

  2. 利用PyTorch训练模型识别数字+英文图片验证码

    利用PyTorch训练模型识别数字+英文图片验证码 摘要:使用深度学习框架PyTorch来训练模型去识别4-6位数字+字母混合图片验证码(我们可以使用第三方库captcha生成这种图片验证码或者自己收 ...

  3. 重启React Native老项目的奇幻之旅:填坑实录与解决方案分享

    这两天为了重启五年前基于 React Native(版本 0.59.9)开发的老项目,经过各种填坑查询等操作,最终把它成功地运行起来了. 在这篇文章中,我将详述那些遭遇的挑战以及对应的解决方案,以期为 ...

  4. ERP财务管理有哪些功能?如何选择合适的ERP软件开发商定制开发适合自己的ERP财务管理?

    企业日常运营中,分工明确.结构清晰的财务管理非常重要,因此在完整的ERP解决方案中,财务管理是不可或缺的部分,甚至财务管理是整个ERP解决方案的核心,其它功能模块都围绕着财务管理构建价值链创造流程,最 ...

  5. Java面试题:细数ThreadLocal大坑,内存泄露本可避免

    一.背景ThreadLocal是Java中用于解决多线程共享变量导致的线程安全问题的一种机制.它为每个线程分配一个独立的变量副本,从而避免了线程间的数据竞争.这个我们从上一篇文章<Java面试题 ...

  6. 力扣901(java&python)-股票价额跨度(中等)

    题目: 编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度. 今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天) ...

  7. Apsara Stack 同行者专刊 | 政企混合云技术架构的演进和发展

    简介: 现在,政企客户已进入到用云计算全面替换传统IT基础架构的攻坚阶段,混合云与传统架构的技术产品能力也正在经历全面的比较与评估.阿里云混合云平台首席架构师张晓丹分享IT架构技术深刻洞察,并对政企混 ...

  8. [Trading] 如何应对股价下跌, 投资技巧

    如果你想利用股价下跌的机会,你可以做以下事情来潜在地赚取利润. 为什么股价下跌会吓到投资者 商品在低价时,我们都倾向于买入,对于股票,价格暴跌以投资的形式损失你的钱,令人产生卖出情绪. 然而在卖掉之前 ...

  9. [Docker] 镜像源配置 for Linux

    $ vi /etc/docker/daemon.json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu ...

  10. [PHP] 几个拖慢 PHP 程序/API 运行速度的点

    1. 启动.查找 Session 需要一定开销,默认 session.save_handler=files,可以通过修改为 redis 提速. files 的 session 会阻塞请求?https: ...