• docker部署springcloud项目


    1. 准备工作

    项目中用到了redis(3.2),mysql(5.7),nginx,elasticsearch(5.5.0),jdk(1.8)。

    将项目中的properites或yml中的配置信息全部配置成默认的,

    将生成的jar包上传到/usr/local/src/下面

    2. 创建Dockerfile

    注:Dockerfile F字母是小写

    FROM java:8

    MAINTAINER 457237252@qq.com

    VOLUME /tmp

    ADD zookeeper-test-0.0.1-SNAPSHOT.jar qjg.jar

    RUN bash -c 'touch /qjg.jar'

    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/qjg.jar"]

    3. 安装mysql

    docker search mysql  //查看都有哪些mysql在docker hub上,OFFICIAL 代表是否官方。

    docker pull mysql:5.7

    docker images 

    docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 --name mysql mysql:5.7

    注:深有体会,用一般方式安装 mysql 用了4小时,用docker安装用了不到五分钟。

    在配置文件的[mysqld]后添加lower_case_table_names=1

    1.linux下输入命令查看docker容器CONTAINER ID :

    命令: docker ps

    2.进入docke容器

    命令: docker exec -it f0b1c8ab3633 /bin/bash 

    (f0b1c8ab3633为CONTAINER ID,请修改为你的CONTAINER ID  )

    3. 不能使用vim命令的时候用如下命令:

    apt-get update
    apt-get install vim

    3.进入mysql目录

    命令: cd /etc/mysql/mysql.conf.d

    4.查看mysql配置文件:

    命令: ls

    5.修改配置文件

    命令:vim mysqld.cnf

    按 i 进入编辑,加入lower_case_table_names=1

    按Esc键,输入 :wq 保存退出

    6.停止docker 

    命令:systemctl stop docker

    7.启动docker

    systemctl restart docker

    docker start d3a64017b824

    4. 安装redis

    docker pull redis:3.2

    1、启动无密码的redis
    docker run -p 6379:6379 -v $pwd/data:/data -d redis:3.2 redis-server --appendonly yes
    备注:
    -p 6379:6379 : 将容器的6379端口映射到主机的6379端口
    -v $pwd/data:/data : 将主机中当前目录下的data挂载到容器的/data
    redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
    2、启动带密码的redis
    docker run -p 6379:6379 -d --restart=always redis:3.2 redis-server --appendonly yes --requirepass "your passwd"
    备注:
    -p 6379:6379 :将容器内端口映射到宿主机端口(右边映射到左边)
    redis-server –appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
    requirepass “your passwd” :设置认证密码
    –restart=always : 随docker启动而启动

     5. 安装nginx

    docker search nginx 

    docker pull nginx 

    docker run --name nginx -p 80:80 -d nginx

    在/usr/local/下面创建nginx,在nginx下面创建html,conf,logs

    然后执行

    docker run -d -p 80:80 --name nginx -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/logs:/var/log/nginx nginx

    然后就可以在nginx的目录下进行文件的编辑操作了。

    6. 安装elasticsearch

    docker pull elasticsearch:5.5.0

    docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -e "cluster.name=elasticsearch" -d elasticsearch:5.5.0

    7. 常用命令

    docker service create --replicas 5 -p 9000:9000 --name qjgdemo qjgdockerdemo     //创建5个qjgdemo。

    docker service rm qjgdemo //删除这个集群。

    docker service scale qjgdemo=1  //将五个集群缩减为四个集群。 注意 qjgdemo=1 中间没有空格,不然会报错。

    docker service ls  //显示所有的服务集群。

    docker node ls  //显示所有的集群节点的信息

    docker stop 80f6f2843e6b   //停止运行容器

    docker container rm 80f6f2843e6b  //删除停止运行的容器

     问题整理:

    1. 创建集群部署时:

     解决方案:docker login 需要注册docker hub ,网址 https://hub.docker.com 注册一个就行。

    2. 执行完docker swarm init 之后 提示执行

    docker swarm join --token SWMTKN-1-2w8xcf26mzxplsgree6auc3jjfp1jz0lmzcy0afhyqpvz6n42l-1ri07ah73op54xys130kmr2uo 172.30.0.10:2377 这个。

    3. docker service create --replicas 5 -p 9000:9000 --network appnet --network bridge --name qjgdemo qjgdockerdemo

    Error response from daemon: network appnet not found 执行这个的时候报错了,改为如下命令:

    docker service create --replicas 5 -p 9000:9000 --name qjgdemo qjgdockerdemo

    4. 针对上面启动elasticsearch的时候报错了。错误信息如下;

     然后参考网页:https://blog.csdn.net/qq_43039260/article/details/87462377

    修改了jvm.options文件

    find / -name jvm.options

    然后进行修改,修改之后重启elasticsearch就行了。

  • 相关阅读:
    python-pyStrich条形码模块
    js原型及原型链解析
    解决Genymotion下载device时较慢的问题
    nodejs实现OAuth2.0授权服务
    Swagger文档添加file上传参数写法
    TypeScript学习笔记之类
    TypeScript学习笔记之接口类型
    win64环境下使用curl命令
    TypeScript学习笔记之基础类型
    WebRTC介绍及简单应用
  • 原文地址:https://www.cnblogs.com/baoyi/p/spring-cloud-docker.html
Copyright © 2020-2023  润新知