Docker应用部署实录(包含完善Docker安装步骤)
Docker应用部署实录(包含完善Docker安装步骤)
前言
首先说一下这篇文章的来源。我之前接手的一个IOT项目,需要安装多个中控服务器。中控服务器需要安装RabbitMQ,Mysql,多个服务,这些部署,部署人员不怎么会(毕竟是硬件兼职的),只能让我给整一个简单一些方案。我当时就想到了容器化部署,然后整一个容器集群(虽然我离开时还没有整容器集群)。
使用Docker部署的好处,就是大大降低部署复杂度。如RabbitMQ的原生部署,需要安装erlang语言,再编译,安装,还容易出问题。docker只需要一条指令(甚至为了简化操作,我将账号密码的初始化操作,也放在了这条指令中,并开启了自启动等)。
所以,通过Docker,实现了较为傻瓜式的部署,并且方案实现简单,所以值得参考。尤其是一些中小型项目,有类似需求的小伙伴更值得推荐,尤其是命令中一些参数。
并且该篇博客,给出了完善的Docker安装步骤。
最后,就当是怀念一下当时刚刚接触容器的我。嘿嘿。
一,安装Docker:
1. 要求:CentOS7系统
2. 查看系统内核:
uname -r

3. 利用root权限,确保yum包更新到最新:
sudo yum update

4. [可选]卸载旧版本:
sudo yum remove docker docker-common docker-selinux docker-engine
5. 安装需要的软件包:
sudo yum install -y yum-utils device-mapper-persistent-data

6. 设置yum源:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

7. 查看所有仓库所有docker版本,并选择安装:
yum list docker-ce --showduplicates | sort -r

8. 安装Docker:
sudo yum install docker-ce


9. 启动并加入开机启动:
systemctl start docker

sudo systemctl enable docker

10. 验证是否安装成功:
docker version


二, 安装RabbitMQ:
1. 安装RabbitMQ(指令确保重启自动启动,修改默认用户名与密码):
docker run -d --hostname my-rabbit -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -p 5672:5672 -p 15672:15672 rabbitmq:3.7-management

2. 验证安装成功:


三, 安装Redis:
1. 安装(指令确保重启自动启动,无需密码,无需持久化):
docker run --name my-redis -d --restart=unless-stopped -p 6379:6379 -d redis:3.2 redis-server

2. 验证安装成功:


四, 安装Mysql:
1. 安装(指令确保重启自动启动,设置root密码为123456,新建用户renewable,密码为123。提升容器内权限):
docker run --name my-mysql -d --restart=unless-stopped --privileged=true -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_USER=”renewable” -e MYSQL_PASSWORD=”123” -d mysql:5.6

2. 安装成功验证:
服务器校验:

root用户连接校验:

自定义用户连接校验:

3. 提示:
上面连接不成功的问题也可以添加镜像参数
--default-authentication-plugin=mysql_native_password
4. 注意:
建议原生安装,如果采用容器部署,请严格遵守安装过程。否则,异常修复会很麻烦。
五, 安装JDK:
经过考虑,暂不考虑容器部署JDK。
之后服务容器化后,可以考虑容器部署JDK。
六, 容器部署外的安装:
1. JDK安装
2. Mysql数据结构导入
3. (rabbitmq的路由等,由程序自动实现)
4. (redis的数据结构等,由程序自动实现)
5. Nginx部署:
(由于是centos7,故可以yum安装)
(由于进行了repo处理,所以可以直接安装nginx)
(否则,需要安装nginx源)
yum install nginx


启动及开启自启动:
systemctl start nginx
systemctl enable nginx

验证:

Nginx的默认路径:
- Nginx配置路径:/etc/nginx/
- PID目录:/var/run/nginx.pid
- 错误日志:/var/log/nginx/error.log
- 访问日志:/var/log/nginx/access.log
- 默认站点目录:/usr/share/nginx/html
七. 应用jar包部署:
这个部分是不可以公开的。各位小伙伴,根据自己的需要,进行处理吧。
如果有什么疑问,可以私信或@我。
愿与诸君共进步。
Docker应用部署实录(包含完善Docker安装步骤)的更多相关文章
- mac和linux下使用Docker,部署SpringBoot项目到docker
主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等. 我用的电脑是mac, ...
- Idea连接服务器docker并部署代码到docker实现一键启动
好记性不如烂笔头,写笔记是为了回头看的. 谁要是不小心搜了看了,如有不足之处敬请谅解. 一.准备工作 虚拟机centos7.X,docker1.3.X,Win10 Idea2018.1 默认Idea已 ...
- centos下docker离线部署
安装准备 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化. 环境要求 Centos 安装包下载地址 安装包下载以下 ...
- docker快速部署DNS,实现快速上线
概念Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.这里我将使用do ...
- Linux 上安装Docker 并部署netcor2.1
述 容器,顾名思义是用来存放并容纳东西的器皿: 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享 ...
- 安装docker并部署web项目
一.docker简介 1.docker定义:docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以装笔,书包可以放书一样.你可以把“Hello World!”放到docker中,也可以把网站放 ...
- Linux下部署docker记录(0)-基础环境安装
以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...
- ubuntu安装Docker并部署selenium-grid
目录 一.docker安装 Ubuntu 1.检查内核版本大于3.10 2.更新apt源 3.安装docker 4.(建议)更新成国内源 5.启动.重启docker (可选)检查docker运行情况 ...
- 一键部署 Docker Datacenter ---简化docker数据中心安装步骤
DDC 简介 2016年2月下旬,Docker发布了企业级容器管理和服务部署的整体解决方案平台-Docker Datacenter,简称DDC.DDC 有三个组件构成:1. Docker Univer ...
随机推荐
- mysqldump主从复制
一,主从复制条件 1,开启binlog功能2,主库建立同步账号3,从库配置master.info(change mast..)4,start slave复制开关知识点:####1, 3个线程,主库i ...
- c++ 基础知识回顾 继承 继承的本质就是数据的copy
c++ 基础知识笔记 继承 什么是继承 继承就是子类继承父类的成员属性以及方法 继承的本质就是 数据的复制 是编译器帮我们做了很多操作 class Base { public: Base(){ cou ...
- $ CometOJ-Contest\#11\ D$ $Kruscal$重构树
正解:$Kruscal$重构树 解题报告: 传送门$QwQ$ 发现一个图上搞就很麻烦,考虑变为生成树达到原有效果. 因为在询问的时候是要求走到的点编号尽量小,发现这个时候点的编号就成为限制了,于是不难 ...
- 通用高效的数据修复方法:Row level repair
导读:随着大数据的进一步发展,NoSQL 数据库系统迅速发展并得到了广泛的应用.其中,Apache Cassandra 是最广泛使用的数据库之一.对于 Cassandra 的优化是大家研究的热点,而 ...
- selenium模块的基本使用
一.selenium库与requests库的区别 - selenium请求库: - 本质上是一个自动化测试模块; ---> 主要用于测试 UI界面 - selenium除了可以做自动化测试,还可 ...
- 编译GLib C程序
编译GLib C程序 GLib是GTK +所需的实用程序库,但也可以在非GUI应用程序中独立使用.本文介绍如何在Linux中编译使用GLib的C程序.它还显示了如何为系统上安装的GLib版本安装正确的 ...
- [Oracle]Oracle的闪回归档
Oracle的闪回归档 场景需求,由于管理数据库的一些核心表,在实施初期会有人为误删除的问题.Oracle 11gR2提供了闪回归档的特性,可以保证不用RMAN来恢复误删除的数据.实践如下: 1.创建 ...
- 1040 有几个PAT (25 分)C语言
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T). 现给定字符 ...
- docker-none
禁用容器的网络连接 如果要完全禁用容器上的网络堆栈,可以--network none在启动容器时使用该标志.在容器内,仅创建环回设备.以下示例说明了这一点. 创建容器. $ docker run -- ...
- Java工作流引擎节点接收人设置20种规则讲解一
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: o ...