1、docker容器中链接外部ZK和数据库。
拉取相应镜像
安装docker
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
# 5、 查看docker版本,验证是否验证成功
docker -v
# 6 修改配置文件
vim /etc/docker/daemon.json
# 7 添加内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
# 重启docker服务
systemctl restart docker
# 查看状态
systemctl status docker -l
# 查看服务
docker info
mysql容器创建
创建好root目录下myclod/mysql包
进入mysql包
cd ~/myclod/mysql
创建mysql容器 :
conf文件存放在/root/myclod/mysql/conf
logs日志文件存放在/root/myclod/mysql/logs
数据文件和linux中mysql构建数据卷
密码设置为root
docker run -id \
-p 3306:3306 \
--name=mysql \
-v /root/myclod/mysql/logs:/logs \
-v /root/myclod/mysql/datas:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7
# mysql开启binlog模式
docker exec mysql bash -c "echo 'log-bin=/var/lib/mysql/mysql-bin' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
docker exec mysql bash -c "echo 'server-id=123454' >> /etc/mysql/mysql.conf.d/mysqld.cnf"
#重启服务
docker restart mysql
#查看是否开启logbin
SHOW VARIABLES LIKE '%log_bin%';
阿里云服务上创建mysql
docker run -id \
-p 3306:3306 \
--name=mysql \
-v /root/myclod/mysql/conf:/etc/mysql/conf.d \
-v /root/myclod/mysql/logs:/logs \
-v /root/myclod/mysql/datas:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mysql:5.7
centos中构建jdk
使用dockerfile基于centos搭建jdk环境,并部署springboot入门案例的jar,达到容器运行后自动运行springboot项目。
虚拟机配置
dockerfile文件镜像构建
FROM centos:7
MAINTAINER myclod
RUN mkdir -p /usr/java
ADD ./jdk-8u202-linux-x64.tar.gz /usr/java
ENV JAVA_HOME=/usr/java/jdk1.8.0_202
ENV PATH=$JAVA_HOME/bin:$PATH
COPY ./springboot-helloworld-1.0-SNAPSHOT.jar /usr/java/
RUN mv /usr/java/springboot-helloworld-1.0-SNAPSHOT.jar /usr/java/app.jar
CMD java -jar /usr/java/app.jar
执行镜像构建
docker build -f ./Dockerfile -t centos:1.0 .
根据镜像创建容器
docker run -id -p 8080:8080 --name springboot centos:1.0
RabbitMQ容器创建
首先拉取rabbitmq镜像
这里拉取management版本
docker pull rabbitmq:management
构建容器配置默认端口映射
docker run -id --hostname my-rabbit -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 --name rabbitmq rabbitmq:management
容器启动后就可以访问了
elasticsearch容器创建
拉取镜像
docker pull elasticsearch:5.6.8
安装镜像
docker run -id --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.0
运行即可
Kibana容器创建
拉去镜像 和elasticsearch版本一致
docker pull kibana:7.9.0
创建容器
docker run -id --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.9.0
Redis容器创建
拉取镜像
docker pull redis:6.0
创建容器
docker run -p 6379:6379 -v /root/myclod/redis/data:/data --restart=always --name redis -id redis:6.0 --appendonly yes --requirepass "root"
命令说明:
-p:宿主机端口与容器端口映射
-v:挂载,将容器中的redis持久化数据挂载到宿主机,避免容器重启导致的数据丢失。
--restart=always:无论什么情况挂壁,总是重启
--name:容器名称
-d:使用指定的镜像(redis的4.0.8版本的镜像)在后台运行容器
--appendonly yes:redis运行时开启持久化
--requirepass "lcl123456":设置redis登陆密码
canal/canal-server容器创建
Dockerfile
FROM canal/osbase:v1
MAINTAINER agapple (jianghang115@gmail.com)
# install canal
COPY image/ /tmp/docker/
COPY canal.deployer-*.tar.gz /home/admin/
RUN \
cp -R /tmp/docker/alidata /alidata && \
chmod +x /alidata/bin/* && \
mkdir -p /home/admin && \
cp -R /tmp/docker/admin/* /home/admin/ && \
/bin/cp -f alidata/bin/lark-wait /usr/bin/lark-wait && \
mkdir -p /home/admin/canal-server && \
tar -xzvf /home/admin/canal.deployer-*.tar.gz -C /home/admin/canal-server && \
/bin/rm -f /home/admin/canal.deployer-*.tar.gz && \
mkdir -p home/admin/canal-server/logs && \
chmod +x /home/admin/*.sh && \
chmod +x /home/admin/bin/*.sh && \
chown admin: -R /home/admin && \
yum clean all && \
true
# 2222 sys , 8000 debug , 11111 canal , 11112 metrics
EXPOSE 2222 11111 8000 11112
WORKDIR /home/admin
ENTRYPOINT [ "/alidata/bin/main.sh" ]
CMD [ "/home/admin/app.sh" ]
morunchang/fastdfs容器搭建
# 作为跟踪器运行
docker run -d --name tracker --net=host morunchang/fastdfs sh tracker.sh
# 作为存储服务器运行
docker run -d --name storage --net=host -e TRACKER_IP=192.168.23.32:22122 -e GROUP_NAME=pinxixi morunchang/fastdfs sh storage.sh
lua容器搭建
没有找到docker中搭建lua容器的方法只能装在liunx 命令如下
#下载lua包
wget -c http://www.lua.org/ftp/lua-5.3.5.tar.gz
#解压
tar zxvf lua-5.3.5.tar.gz
#进入lua文件
cd lua-5.3.5
#执行 如果报错lua.c:80:31: 致命错误:readline/readline.h:没有那个文件或目录
make linux
#解决办法:安装: libtermcap-devel ncurses-devel libevent-devel readline-devel
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
#最后
sudo make install
OpenResty安装
#拉取镜像
docker pull openresty/openresty
#安装容器
docker run -d --name openresty -p 8989:80 \
-v /root/myclod/opebresty/config:/usr/local/openresty/nginx/conf \
-v /root/myclod/opebresty/logs:/usr/local/openresty/nginx/logs \
-v /root/myclod/opebresty/example:/usr/example \
-v /root/myclod/opebresty/html:/usr/local/openresty/nginx/html \
-d openresty/openresty
#在宿主机中/root/myclod/opebresty/config目录下创建nginx,conf文件写入
events {
worker_connections 1024;
}
http {
server {
listen 80;
location / {
content_by_lua '
ngx.say("hello11111, world11111")
';
}
}
}
#运行服务
docker exec -it openresty openresty
#浏览器访问 192.168.23.32:8989
hello11111, world11111
canal容器搭建
#拉去canal镜像
docker pull canal/canal-server
#创建容器
docker update -m 300m run --name canal1 -e canal.instance.master.address=47.98.61.215:3306 -e canal.instance.dbUsername=root -e canal.instance.dbPassword=root -p 11111:11111 -d canal/canal-server
#进入容器 /etc/sysctl.conf 开启外网访问
修改 net.ipv4.ip_forward = 1
MongoDB容器搭建
# 拉取mongodb4.4版本
docker pull mongo:4.4
# 运行创建容器 挂载到data/mongo目录
docker run -itd --name mongo -v /data/mongo:/data/db -p 27017:27017 mongo --auth
#进入容器 创建一个名为admin的用户
docker exec -it mongo mongo admin
#设置密码为123456
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')
er run -itd --name mongo -v /data/mongo:/data/db -p 27017:27017 mongo --auth
#进入容器 创建一个名为admin的用户
docker exec -it mongo mongo admin
#设置密码为123456
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')
## docker 离线部署
```js
docker离线包tgz下载地址
https://download.docker.com/linux/static/stable/x86_64/
//上传文件,解压
[root@dev1 opt]# tar -xvf docker-18.06.1-ce.tgz
//复制
[root@dev1 opt]# cp docker/* /usr/bin/
//启动服务
[root@dev1 opt]# dockerd &
//测试
[root@centos75-1 ~]# docker -v
//导入镜像
[root@centos75-1 ~]# docker load -i mongo4.4.2.tar
创建用户表空间:
CREATE TABLESPACE test datafile '/home/oracle/app/oradata/orcl/CCMS.dbf' size 600M autoextend on next 50m maxsize unlimited;
创建用户,指定密码和上边创建的用户表空间
CREATE USER aitemi IDENTIFIED BY aitemi DEFAULT TABLESPACE CCMS;
docker安装和配置oracle11G
开始拉取镜像-执行命令:
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
拉取成功以后
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
如果创建成功能会返回容器id
3. 启动容器
docker start oracle11g
进入镜像进行配置
docker exec -it oracle11g bash
切换到root 用户下
su root
密码:helowin
编辑profile文件配置ORACLE环境变量
在docker中查找并编辑profile文件 vi /etc/profile 在最后加上
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
5. oracle的配置
1. 创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
2. 切换到oracle 用户
这里还要说一下,一定要写中间的 - 必须要,否则软连接无效
6. oracle数据库的操作
1. 登录sqlplus并修改sys、system用户密码
sqlplus /nolog
conn /as sysdba
2. 修改和创建用户
接着执行下面命令
alter user system identified by system;
alter user sys identified by sys;
也可以创建用户 create user test identified by test;
并给用户赋予权限 grant connect,resource,dba to test;
3. scott用户的开启
--解锁scott用户(安装时若使用默认情况没有解锁和设置密码进行下列操作,要超级管理员操作)
alter user scott account unlock;
--解锁scott用户的密码【此句也可以用来重置密码】
alter user scott identified by tiger;