1、docker容器中链接外部ZK和数据库。

拉取相应镜像

docker容器创建ppt docker容器创建时为容器配置yum_mysql

安装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

容器启动后就可以访问了

docker容器创建ppt docker容器创建时为容器配置yum_docker容器创建ppt_02

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

运行即可

docker容器创建ppt docker容器创建时为容器配置yum_oracle_03

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 用户

docker容器创建ppt docker容器创建时为容器配置yum_docker容器创建ppt_04

这里还要说一下,一定要写中间的 - 必须要,否则软连接无效

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;