Docker-常用基建的安装与部署
一:Docker安装
1:通过yum安装docker
yum -y install gcc
yum -y install gcc-c++
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce-18.06.3.ce
2:为docker设置源
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://r5yuqwmu.mirror.aliyuncs.com"],
"data-root": "/home/data/docker",
"log-driver": "json-file",
"log-opts": {"max-size":"50m", "max-file":"1"}
}
启动docker:systemctl start docker
二:docker镜像
https://docs.docker.com/engine/
获取docker镜像的两种方式:(以mysql为例)
1:docker pull mysql:5.7
从dockerhub中去拉取网上公开的可用的镜像,可以自己去搜索自己想要的:https://hub.docker.com/search?q=&type=image&category=database
2:docker build -t mysql_self .
自定义Dockerfile,可以基于公开的镜像,自定义自己的镜像。
#基础镜像使用 mysql:5.7
FROM mysql:5.7 #作者
MAINTAINER author ENV WORK_PATH /usr/local/work #定义会被容器自动执行的目录
ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d #定义sql文件名
ENV FILE_0 myself.sql
ENV LANG en_GB.utf8 #配置文件复制进去
COPY my.cnf /etc RUN yes|cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #定义shell文件名
ENV INSTALL_DB_SHELL install_db.sh #创建文件夹
RUN mkdir -p $WORK_PATH #把数据库初始化数据的文件复制到工作目录下
COPY ./$FILE_0 $WORK_PATH/ #把要执行的shell文件放到/docker-entrypoint-initdb.d/目录下,容器会自动执行这个shell
COPY ./$INSTALL_DB_SHELL $AUTO_RUN_DIR/
WORKDIR $WORK_PATH #给执行文件增加可执行权限
RUN chmod a+x $AUTO_RUN_DIR/$INSTALL_DB_SHELL
三:docker容器
当镜像都下载完成后,就可以创建docker容器并运行使用,下面就以实例测试mysql、canal、kafka和zookeeper这几个基建的部署。
# 创建自定义network
docker network create --subnet=172.18.0.0/16 mynetwork
docker run options 可以参考:https://docs.docker.com/engine/reference/commandline/run/
1:运行mysql容器
docker run -p 3306:3306 --name mysql_self --net mynetwork --ip 172.18.0.36 -v /home/data/docker/mysql/logs:/logs -v /home/data/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Abcd12345 -d --restart=always mysql_self:latest
2:canal
docker run -d --name canal -p 11111:11111 --net mynetwork --ip 172.18.0.41 -e canal.destinations=self -e canal.instance.mysql.slaveId=12 -e canal.auto.scan=false -e canal.instance.master.address=172.18.0.36:3306 -e canal.instance.dbUsername=canal -e canal.instance.dbPassword=canal -e canal.instance.filter.regex=esen_approval.apt_approval --restart=always canal/canal-server:v1.1.4
canal要想搭配好mysql,其中有几点需要注意;
1:canal.instance.master.address的地址必须指向mysql容器的ip和port
2:canal.instance.mysql.slaveId 不能与mysql的一致,mysql的log_bin要开启 ,查看命令为:show variables like 'log_bin'
3:canal.instance.dbUsername和canal.instance.dbPassword 要在启动前设置好。
3:zookeeper
docker run -d --name zookeeper -p 2181:2181 --net mynetwork --ip 172.18.0.37 -v /home/data/docker/zookeeper/logs:/datalog -v /home/data/docker/zookeeper/data:/data --restart=always -t zookeeper:3.4.14
4:kafka
docker run -d --name kafka -p 9092:9092 -p 19092:19092 --net mynetwork --ip 172.18.0.38 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.18.0.37:2181 -e KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL -e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT -e KAFKA_ADVERTISED_LISTENERS=INTERNAL://172.18.0.38:19092,EXTERNAL://外网IP:9092 -e KAFKA_LISTENERS=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092 --restart=always -t wurstmeister/kafka
四:docker-compose
1:docker-compose安装
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose file 和docker版本之间的对照关系:https://docs.docker.com/compose/compose-file/
2:docker-compose.yml
version: '3.7'
services:
mysql_hermes:
build: /root/data/docker/mysql/mysql_hermes
container_name: mysql_hermes
environment:
- "MYSQL_ROOT_PASSWORD=Abcd12345"
ports:
- "3306:3306"
restart: always
volumes:
- "/root/data/docker/mysql/logs:/logs"
- "/root/data/docker/mysql/data:/var/lib/mysql"
zookeeper:
image: zookeeper:3.4.14
container_name: zookeeper
restart: always
hostname: zookeeper
ports:
- 2181:2181
volumes:
- /root/data/docker/zookeeper/logs:/datalog
- /root/data/docker/zookeeper/data:/data
networks:
default:
ipv4_address: 172.18.0.37
kafka:
image: wurstmeister/kafka:latest
container_name: kafka
restart: always
ports:
- 9092:9092
- 19092:19092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 172.18.0.37:2181
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: INTERNAL://172.18.0.38:19092,EXTERNAL://47.99.72.114:9092
KAFKA_LISTENERS: INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092
volumes:
- /root/data/docker/kafka/data:/kafka
depends_on:
- zookeeper
networks:
default:
ipv4_address: 172.18.0.38
canal:
image: canal/canal-server:v1.1.4
restart: always
container_name: canal
depends_on:
- mysql_hermes
ports:
- 11111:11111
environment:
- canal.instance.mysql.slaveId=12
- canal.auto.scan=false
- canal.destinations=hermes
- canal.instance.master.address=mysql_hermes:3306
- canal.instance.dbUsername=canal
- canal.instance.dbPassword=canal
- canal.instance.filter.regex=esen_approval.apt_approval
networks:
default:
ipam:
config:
- subnet: 172.18.0.0/16
启动命令:docker-compose -f xx.yml up -d
停止命令:docker-compose -f xx.yml down
Docker-常用基建的安装与部署的更多相关文章
- docker常用命令,安装常用实例,一步式安装mysql
		刚来公司,跟公司测试环境项目的服务器,环境是linux Centos7.2 所有的tomcat都挂载在docker容器下,所以也就学习了一些简单的docker指令(学习之前请了解什么是docker, ... 
- Docker学习--->>Docker的认识,安装,及常用命令熟悉
		Docker是什么? 在平常的软件开发中,会面临着开发不同的程序或服务需要不同的环境.而在该环境上开发完成后,想要在其他的环境上部署,则需要自己去重新部署,而Docker的出现使得这样的迁移变得容易. ... 
- 【Docker】(3)---linux部署Docker、Docker常用命令
		linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ... 
- Docker安装与部署
		安装Docker: 查看你当前的内核版本: uname -r 更新yum包: sudo yum update 卸载旧版本(如果安装过旧版本的话): sudo yum remove docker doc ... 
- Docker安装及部署实例.Net Core
		1.什么是Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ... 
- Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。
		Docker简介 Docker是开源应用容器引擎,轻量级容器技术. 基于Go语言,并遵循Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ... 
- [容器]docker-ce安装最新版-docker常用操作
		社区: http://www.dockerinfo.net/rancher http://dockone.io/ https://www.kubernetes.org.cn/ 1,docker安装配置 ... 
- ubuntu docker安装与部署java,mysql,nginx镜像
		docker 安装与部署java,mysql,nginx docker 配置 安装docker $ sudo apt-get remove docker docker-engine docker.io ... 
- Docker 安装并部署Tomcat、Mysql8、Redis
		1. 安装前检查 1 #ContOS 7安装Docker系统为64位,内核版本为3.10+ 2 lsb_release -a 3 4 uname -r 5 6 #更新yum源 7 yum -y up ... 
随机推荐
- iOS10 App适配权限  Push Notifications 字体Frame 遇到的坑!!!!
			添加配置权限 <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>"x ... 
- Leetcode——练习
			平时没事刷刷Leetcode,还办了个年会员.为了自己150刀.为了自己的大脑投资,从不差钱儿.刷刷题能练习coding,此外看一些别人的优秀的答案,能增长见解.大家共同努力,共勉. 十.Google ... 
- MySQL索引与SQL注入
			SQL注入: SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作, ... 
- SonarQube - 以Docker方式启动SonarQube
			1 - SonarQube镜像 https://hub.docker.com/_/sonarqube/ Dockerfile - 7.9.1-community https://github.com/ ... 
- eclips快捷键
			所谓"工欲善其事必先利其器",程序写多了,对于快捷键总有些特别的偏爱.在众多编辑器中,Eclipse算是用的比较多,也是最熟的. 最常用(也是最爱的:)) Ctrl+' : 自动 ... 
- Qt学习笔记-设计简易的截图工具软件
			现在利用Qt来实现一个截图软件. 首先,设计一个界面出来. 最上面有一个label用来显示图片. 然后使用QPixmap中的静态函数grabWindow来获取图片.这里需要一个winID.可以使用 Q ... 
- MySQL中的排序
			在编写SQL 语句时常常会用到 order by 进行排序,那么排序过程是什么样的?为什么有些排序执行比较快,有些排序执行很慢?又该如何去优化? 索引排序 索引排序指的是在通过索引查询时就完成了排序, ... 
- ATM管理系统
			一.题目要求 编写一个ATM管理系统,语言不限,要求应包括以下主要功能: (1)开户,销户 (2)查询账户余额 (3)存款 (4)取款 (5)转账(一个账户转到另一个账户)等 二.代码提交 开户 pu ... 
- ESXi 中重新启动管理代理
			使用直接控制台用户界面 (DCUI)重启管理代理: 连接到您的 ESXi 主机的控制台. 按 F2 自定义系统. 以 root 身份登录. 使用上下箭头导航至故障排除选项>重新启动管理代理. 按 ... 
- 安装cmake过程g++: 错误:unrecognized command line option ‘-std=gnu++14’
			问题根因 这个错误一般是gcc/g++版本太低导致的 疑问 我本地明明安装的是高版本的gcc/g++为何说是低版本的呢,有图为证: 这主要是因为你安装了多个版本的gcc/g++,但是默认(/usr/b ... 
