Docker 安装MySQL 主从复制 、Redis 、nginx 、安装maven,和java 配置开发环境
一、 执行命令,删除原有的docker
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
二、 安裝docker
- sudo yum install docker-ce 安装
- sudo systemctl start docker 启动
-
docker --version 查看版本
1 安装maven,和java
- docker pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
----
### 2 安装mysql
- 拉取镜像,docker pull mysql:5.8
-
安装mysql主从复制
安装主库
- docker run --name mysql-master -e MYSQL_ROOT_PASSWORD=root -p 10000:3306 -d mysql
-
docker ps 查看mysql容器是否启动
配置
- 使用navicat 连接数据库,报错。Client does not support authentication protocol ; 解决方法 如下:
- 授权
GRANT ALL ON . TO 'root'@'%'; -
刷新权限
flush privileges;此时,还不能远程访问,因为Navicat只支持旧版本的加密,需要更改mysql的加密规则;
- 更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; - 更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; - 刷新权限
flush privileges;
- docker exec -it mysql-master /bin/bash 或 docker exec -it 627a2368c865 /bin/bash 进入mysql主库容器内部
- 切换到/etc/mysql 目录下, cd /etc/mysql .
-
修改my.cnf文件,vim my.cnf 在文件中添加如下内容
[mysqld] ## 同一局域网内注意要唯一 server-id=1001 ## 开启二进制日志功能,可以随便取(关键) log-bin=mysql-bin
如果报错,出现没有vi 命令: 依次执行以下命令
apt-get update; apt-get install vim
- 重启mysql服务,使用命令: docker restart 容器名称或者id (1b4671904bfa)
#### 创建数据同步用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。
- CREATE USER'slave'@'%'IDENTIFIED BY'123456';
- GRANT REPLICATION SLAVE,REPLICATION CLIENT ON.TO'slave'@'%';
安装从库
- docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -p 10001:3306 -d mysql
- docker ps 查看mysql容器是否启动
配置
- docker exec -it mysql-slave /bin/bash 或 docker exec -it 627a2368c865 /bin/bash 进入mysql主库容器内部
- 切换到/etc/mysql 目录下, cd /etc/mysql .
-
修改my.cnf文件,vim my.cnf 在文件中添加如下内容
[mysqld] server-id=101 ## 开启二进制日志功能 log-bin=mysql-slave-bin ## relay_log配置中继日志 relay_log=edu-mysql-relay-bin
如果报错,出现没有vi 命令: 依次执行以下命令
apt-get update; apt-get install vim
- 重启mysql服务,使用命令: docker restart 容器名称或者id (1b4671904bfa)
### 配置主从复制 - 登录主服务器,执行show master status;如下图
-
登录从服务器,执行
change master to master_host='172.17.0.2',master_user='slave', master_password='123456',master_log_file='mysql-bin.000001', master_log_pos=155,master_port=3306;
- show slave status G;用于查看主从同步状态。
- start slave ; 启动主从复制。
- show slave status G;用于查看主从同步状态。
- 查看容器的ip docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或id(mysql-master)
- 在容器中安装ping : apt-get install iputils-ping
-
参数解释
- master_host :Master的地址,指的是容器的独立ip,
- master_port:Master的端口号,指的是容器的端口号
- master_user:用于数据同步的用户
- master_password:用于同步的用户的密码
- masterlogfile:指定 Slave 从哪个日志文件开始复制数据
- masterlogpos:从哪个 Position 开始读,
-
masterconnectretry:如果连接失败,重试的时间间隔,单位是秒,默认是60秒
3 安装 redis
-
使用Dockfile 安装redis
FROM centos MAINTAINER merry WORKDIR /home RUN yum install -y wget gcc && \ rpm --rebuilddb && \ yum -y install gcc automake autoconf libtool make && \ yum -y install net-tools && \ yum -y install tar && \ wget http://download.redis.io/redis-stable.tar.gz && \ tar -xvzf redis-stable.tar.gz && \ mv redis-stable/ redis && \ rm -f redis-stable.tar.gz && \ yum clean all && \ cd redis && \ make && make install EXPOSE 6379 ENTRYPOINT redis-server /home/redis/redis.conf CMD ["redis-server"]
- 构建: docker build -t redis:v1 .
- 启动: docker run -d -p 6378:6379 redis:v1
### 4 安装 nginx -
使用Dockfile 安装
FROM centos MAINTAINER merry #ENV 设置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH ADD http://nginx.org/download/nginx-1.16.0.tar.gz . #RUN 执行以下命令 RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel RUN useradd -M -s /sbin/nologin nginx RUN tar -zxvf nginx-1.16.0.tar.gz RUN mkdir -p /usr/local/nginx RUN cd nginx-1.16.0 && ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install ADD nginx.conf /usr/local/nginx/conf/nginx.conf #EXPOSE 映射端口 EXPOSE 80 EXPOSE 443 #ENTRYPOINT 运行以下命令 ENTRYPOINT ["nginx"]
- 构建: docker build --rm --tag centos_nginx:centos .
-
启动容器:
docker run \ --name centos_nginx \ -d -p 80:80 \ -v /home/nginx/html:/usr/share/nginx/html \ -v /home/log:/var/log/nginx \ -v /home/nginx.conf:/usr/local/nginx/nginx.conf:ro \ -v /home/nginx/conf.d:/usr/local/nginx/conf.d \ nginx
欢迎关注公众号,查看更多内容
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
在AlibabaCloud上,如何使用RAM Role对ACK容器集群进行身份验证
如果你是ACK容器集群(AlibabaCloud Container Service for Kubernetes)的管理员,你可能经常需要为其他的普通开发者角色创建不同的RAM子账户并进行授权操作,当需要对多个开发人员授予相同ACK集群操作权限时,为每个开发者创建子账号并授权就显得太过重复和繁琐了。 本文基于ack-ram-authenticator项目,演示如何配置ACK集群使用RAM Role进行身份验证。 0. 步骤概览 (1) RAM控制台 创建子账户kubernetes-dev、dev01、dev02... devN和RAM Role KubernetesDev并为子账户kubernetes-dev授权(2) ACK集群中部署和运行 ack-ram-authenticator server(3) 配置ACK集群Apiserv
- 下一篇
云上爆款,上云趁现在。值得推荐的理由; 阿里云采购季省钱攻略全放送
最近阿里云又双叒叕搞活动了,这次活动名为云上爆款-云服务器ECS-云主机优惠-低价上云提速不提价。云上爆款是阿里云最新活动,参与优惠的产品种类齐全,包括香港、国外的云服务器ECS,建站类产品,云数据库RDS,对象存储OSS。价格比之前的长期性活动更加优惠,全场ECS服务器折扣最多可高达2404元!活动包括主机入门、主机进阶、建站必选、海外人群、其他商品五个主题。分别满足不同用户的上云采购需求。 主机入门,该主题下的机器均为T5或者共享入门型配置,主要面向个人及中小企业建站、简单应用等用户需求,限时3年3折。 主机进阶,该主题下活动的机器配置较主机入门高,可选的配置最高可达8核64GB 10M带宽,基本满足了大多数用户的上云需求。 建站必选,该主题主要面向有企业官网建站需求的客户,里面的活动机型均预装了可视化控制面板,可一键部署网站环境,非常适合中小企业的官网建站需求。 海外人群,该主题下的云服务器ECS均为香港,海外机型。阿里云已经长时间没有推出过海外、香港机型的活动了。活动内机型既可以选择1~10M的按带宽付费的带宽,也可以选择30M的按流量付费的带宽,购买时长也从1年~3年可选。想...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题