微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)
其实在介绍docker的使用和安装之前应该还要介绍虚拟机的安装与配置,以及虚拟网络的配置,但是我使用的是vmware,而视频课使用的是vagrant,这一块我简看的,因此没有过多的介绍,至于vmware的安装配置和虚拟网络的配置我倒是可以给大家推荐两篇博客:
VMware 安装 Centos7 超详细过程:https://www.runoob.com/w3cnote/vmware-install-centos7.html
VMware虚拟机下Centos7 桥接方式网络配置完整步骤:https://blog.csdn.net/u013626215/article/details/88645003
之前就该发布的,不过那时候还没有整理好,加上有各种各样的事情耽误,今天抽空整理了下,就发表了,如有问题,请多多指教。
一、docker理念
docker的概念:在任何地方发布运行,一次封装,到处运行,docker提供了一种标准。 docker解决了运行环境和配置问题软件容器,方便做持续继承并有助于整体发布的容器虚拟化技术
docker三要素:镜像+仓库+容器
docker可以做什么?docker是容器虚拟技术,可以实现web应用自动化打包发布、自动化测试和持续集成、在服务型环境中部署和调整数据库或其他的后台应用、搭建paas环境。
虚拟机系统:在一个操作系统上运行另外一个操作系统,应用程序对此毫无感知,如果不需要了就可以删除这个虚拟机系统,在底层,虚拟机就是一个文件。
虚拟机的缺点:资源占用多,冗余步骤多,启动慢。
比较docker与传统虚拟化技术的区别: 传统虚拟机技术是虚拟出一整套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要的程序。 而docker容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也可以进行硬件虚拟,因此容器要比传统虚拟机更为轻便。并且每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
docker的优点总结:一次构建、随处运行。更快捷的应用交付和部署;更便捷的升级和扩缩容;更简单的系统运维;更高效的计算资源利用。docker更高效:无操作系统的虚拟化开销;更敏捷,更灵活。
docker的实例应用: 蘑菇街基于docker的优势:轻量,秒级的快速启动速度;简单易用活跃的社区;标准统一打包部署运行方案;镜像支持增量分支,易于部署; 易于构建、良好的REST API,也很适合自动化测试和持续集成,;性能高,尤其是内存和IO的开销小
docker下载地址:官网:docker.com ; 中文版:docker-cn.com ; 仓库:docker hub
二、docker安装
前提说明:centos6.5以上的版本,系统为64位
查看自己的内核版本:uname -r
cat /etc/redhat-release
docker的基本组成: Client + DOCKER_HOST + Registry == docker终端+docker主机+docker仓库
三大要素: 镜像:docker镜像就是一个只读的模板,镜像可以用来创建docker容器,一个镜像可以创建很多容器; 容器:docker利用容器独立运行的一个或一组应用。容器是用镜像创建的运行实例; 仓库:集中存放镜像文件的场所。
仓库和仓库注册服务器是有区别的。仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像, 每个镜像有不同的标签。
仓库分为公开仓库和私有仓库两种形式。最大的公开仓库是docker hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。
安装步骤:
centos6.8安装步骤:
1、yum install -y epel-release
2、yum install -y docker-io
3、安装后的配置文件:etc/sysconfig/docker
4、service docker start //启动docker
5、docker version //查看docker的内核版本
centos7安装教程: 参考博客:https://blog.csdn.net/u014069688/article/details/100532774
启动docker:sudo systemctl start docker
查看docker的版本:docker -v
查看docker安装的镜像列表:docker images
设置docker开机自启动:systemctl enable docker
三、使用docker安装mysql和redisdocker pull mysql:5.7
1.1创建实例并启动:docker run -p 3306:3306 --name mysql\ 将容器的3306端口映射到主机的3306端口
-v /mydata/mysql/log:/var/log/mysql\ 将mysql镜像日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql\ 将mysql数据文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql\ 将配置文件夹挂在到主机
-e MYSQLROOTPASSWORD=root\ 初始化root用户的密码
-d mysql:5.7
供复制使用
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
1.2 docker ps查看正在运行的镜像
使用docker exec -it mysql /bin/bash 访问容器内部(每一个容器里面都是一个linux系统 在容器内部可以进行各种命令操作,退出容器回到linux主系统时,exit即可)
另外,由于先前执行了挂载的命令,因此修改主linux里面映射好的文件夹里面的内容,镜像里面也会同步更改。
1.3 docker里面mysql镜像的配置文件修改:
vi /mydata/mysql/my.cnf
配置文件内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
1.4重启mysql:docker restart mysql
进入到mysql的容器看一看有没有修改好配置
docker exec -it mysql /bin/bash
cd /etc/mysql
cat my.cnf
2.docker安装redis
docker pull redis :下载redis镜像,不指定版本则下载最新的
mkdir -p /mydata/redis/conf 创建redis相关的文件夹
touch redis.conf 创建redis的配置文件
挂载命令
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
进入docker镜像里面的redis
docker exec -it redis redis-cli
进入后进行set,get操作,但是重启redis后发现值获取不到了,说明刚刚redis的值是存在内存中的,没有持久化 docker restart redis 重启redis
实现持久化:先输入pwd,再编辑redis.conf 加入:appendonly yes
博主整理实属不易,请兄台点个赞再走吧,欢迎评论和多多指教。
微服务分布式电商项目学习笔记(三)---- docker介绍安装以及使用docker安装软件(2020/7/10)的更多相关文章
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计
笔记 4.微服务下电商项目基础模块设计 简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习 小而精的方式学习微服务 1.用户服务 ...
- Django REST framework+Vue 打造生鲜电商项目(笔记三)
(PS:转载自http://www.cnblogs.com/derek1184405959/p/8810591.html 有修改) 一.drf的过滤 (1)添加到app里面 INSTALLED_AP ...
- 16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程
16套Java架构师,集群,高可用,高可扩展,高性能,高并发,性能优化,设计模式,数据结构,虚拟机,微服务架构,日志分析,工作流,Jvm,Dubbo ,Spring boot,Spring cloud ...
- Django REST framework+Vue 打造生鲜电商项目(笔记八)
(form:http://www.cnblogs.com/derek1184405959/p/8862569.html) 十一.pycharm 远程代码调试 第三方登录和支付,都需要有服务器才行(回调 ...
- Django REST framework+Vue 打造生鲜电商项目(笔记四)
(PS:部分代码和图片来自博客:http://www.cnblogs.com/derek1184405959/p/8813641.html.有增删) 一.用户登录和手机注册 1.drf的token功能 ...
- Django REST framework+Vue 打造生鲜电商项目(笔记一)
首先,这系列随笔是我个人在学习Bobby老师的Django实战项目中,记录的觉得对自己来说比较重要的知识点,不是完完整整的项目步骤过程....如果有小伙伴想找完整的教程,可以看看这个(https:// ...
- Django REST framework+Vue 打造生鲜电商项目(笔记十)
(from:https://www.cnblogs.com/derek1184405959/p/8877643.html 有修改) 十三.首页.商品数量.缓存和限速功能开发 首先把pycharm环境 ...
- Django REST framework+Vue 打造生鲜电商项目(笔记九)
(from:http://www.cnblogs.com/derek1184405959/p/8859309.html) 十二.支付宝沙箱环境配置 12.1.创建应用 进入蚂蚁金服开放平台(https ...
- Django REST framework+Vue 打造生鲜电商项目(笔记六)
(部分代码来自https://www.cnblogs.com/derek1184405959/p/8836205.html) 九.个人中心功能开发 1.drf的api文档自动生成 (1) url #d ...
随机推荐
- go语言基础实例
一:变量 1)变量声明 func main() { var v1 int var v2 int //一次声明多个变量 var ( v3 int v4 int ) //变量最开始会有一个零值 fmt.P ...
- 从APP的启动说起
iOS里面APP的启动,过程有些复杂,今天我们来抽丝剥茧,一步步探讨一下APP的启动会经历哪些过程. 首先,用户点击iPhone里面的某个APP的icon,Kernel内核会开始初始化空间并创建进程, ...
- Framework项目持续集成(jenkins)及集合SonarQube
目录 Framework项目持续集成及集合SonarQube - 前言 CI/CD是什么 -- jenkins 什么是sonarqube?什么是CodeReview? 什么是sonarqube? 什么 ...
- PHP 日期与时间函数详解
在开发过程中,我们经常碰到日期与时间戳相关的功能,今天趁此机会做个详细笔记. date_default_timezone_set('PRC'); /*把时间调到北京时间,php5默认为格林威治标准时间 ...
- 前端用vue怎么接收并导出文件
window.location.href = "excel地址" 如果是 get 请求,那直接换成 window.open(url) 就行了 创建一个隐藏的 iframe,把 if ...
- ASP导出数据到excel遇到的一些问题
一直用动易平台的ASP做新闻发布网站,直到现在才接触导出数据到Excel的问题,目的在于公司要统计各部门的投稿量,要做这么个东西,实现起来是挺简单的,但是第一次做,还是费了一些功夫的,特此记录一下 主 ...
- 简介&目录
欢迎来到 MK 的博客鸭~ 这里会被我用来发一些OI算法.数据结构的学习笔记,各种游记和其他的一些内容,希望大家多多关照! ε≡٩(๑>₃<)۶ 然后目录就也放这里⑧:
- 小程序开发-Map地图组件
Map组件 是原生组件,使用时请注意相关限制.个性化地图能力可在小程序后台"设置-开发者工具-腾讯位置服务"申请开通. 设置subkey后,小程序内的地图组件均会使用该底图效果,底 ...
- ES6特性整理
ESMAScript6.0 ES6 兼容 IE10+ .Chrome.Firefox 要想兼容IE10以下的有两种方法: 用 babel 工具 borwer.js ,在 script 标签里添加 ty ...
- 案例:ADG环境遇到redo日志member路径有误以及RMAN-6571错误
最近先后帮客户做了两套从虚拟化环境到物理机的数据库迁移,都是Linux系统,Oracle 11.2.0.4的RAC,最终选定ADG方案实现迁移,简单高效. 在之前的文章Oracle 11g ADG 部 ...