Docker上部署微服务

Docker上部署微服务

网上查找了很多资料,没有详细的教程,所以自己通过资料总结一下,微服务部署是分别将每个微服务部署在docker上

1、环境搭建
1.1 centos安装docker
  • 1、检查centos内核版本,内核版本必须在3.10以上才行

    uname -r
    
  • 2、使用root权限登录centos,确保yum包更新到最新

    yum -y update
    
  • 3、卸载旧版本(如果安装过旧版本的话)

    yum remove docker docker-common docker-selinux docker-engine
    
  • 4、安装需要的软件包,yum-utils 提供yum-config-manage功能,另外两个是device-mapper驱动依赖的

    yum install -y yum-utils device-mapper-persistent-data lvm2	
    
  • 5、设置yum源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  • 6、可以查看所有仓库中的docker版本,并选择特定版本安装

    yum list docker-ce --showduplicates | sort -r
    
  • 7、安装docker

    sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是稳定版18.03.1
    
  • 8、启动并加入开机启动

    systemctl start docker
    systemctl enable docker
    
  • 9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

    docker version   #看到docker版本即为安装成功
    
1.2 配置阿里镜像加速
  • 注册账号(免费)

    网址:https://cr.console.aliyun.com/cn-hangzhou/mirrors
    在这里插入图片描述
    按照上面的第二步提示进行配置即可,

sudo mkdir -p /etc/docker
#下面这几行需要一起copy
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://dhe9work.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2、Docker镜像相关命令
docker images #查看images中全部镜像
docker search java #搜索镜像,搜索结果和在docker hub中搜索的结果相同
docker pull java:8 #下载镜像文件到本地仓库images
docker rmi --imageid #删除镜像 
docker run -d -p 81:80 nginx #81暴露给主机,80是宿主机(容器)的端口;-d表示后台运行

​ 运行完上面这条命令之后,去访问(centosIP:81)就会出现下面的欢迎页面

在这里插入图片描述

docker ps #查看当前运行的容器
  • 如果想要访问容器内部,可以按照如下操作

    #1、先查看容器的id
    #2、输入下面的命令
    docker inspect 231d40e811cd
    
3、将springboot项目部署到docker
3.1 构建自己的docker镜像
  • 将jar包上传到linux服务器/user/local/dockerapp目录,在jar包所在目录创建名为Dockerfile的文件

    cd ..
    cd /usr/local
    mkdir dockerapp
    #使用filezilla将jar包上传到这个目录下
    
  • 在Dockerfile中添加以下内容

    ### 指定java8环境镜像
    FROM java:8
    ### 复制文件到容器app-springboot
    ADD eurekaserver.jar /app-eurekaserver.jar
    ### 声明启动端口
    EXPOSE 8761
    ### 配置容器启动后执行的命令
    ENTRYPOINT ["java","-jar","/app-eurekaserver.jar"]
    
  • 使用docker build 命令构建镜像

    docker build -t app-eurekaserver .
    # 格式:docker build -t 镜像名称:标签 Dockerfile的相对位置
    
  • 启动容器

    docker run -p 8761:8761 app-eurekaserver
    
  • 然后访问 ip:port 即可看到eurekaserver的界面

在这里插入图片描述

4、docker卸载镜像文件
# 先删除容器,后删除镜像
#1、查询容器(没有a表示运行的容器)
docker ps -a
#2、使用容器id删除容器
docker rm 544840513f26 
#3、查看镜像
docker images
#4、使用镜像id删除镜像
docker rmi 6cd8bcc98bf3 
  • 重启命令

    systemctl restart docker#重启docker
    
  • 关闭linux防火墙命令(这样使用windows就可以访问linux)

    systemctl stop firewalld
    
5、通过negix配置负载均衡
  • 镜像一般默认安装在容器id/ect的目录下

  • 容器管理

    #进入到容器
    docker container exec -it [id] /bin/bash
    #默认情况下软件安装在目录的/etc目录下
    #退出到宿主机
    exit
    
  • linux挂载(使用挂载方式,外部的配置文件覆盖内部容器配置文件)

    Docker 安装的软件来修改配置文件

    docker run [name] -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx
    #/data/nginx/conf/nginx.conf表示宿主机目录
    #/etc/nginx/nginx.conf 容器内的目录
    
6、nginx配置负载均衡
  • 安装nginx

    • 下载Nginx镜像文件

      docker pull nginx
      docker images
      
    • 创建挂载目录

      mkdir -p /data/nginx/{conf,conf_d,html,logs}
      
    • 编写Nginx配置文件

    • 启动容器

      docker run [name] -d -p 80:80 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx
      #执行完这步之后就已经将配置文件同步到容器内部了
      
    • 查看容器

      docker ps
      
7、mysql安装
  • 查询mysql版本

    docker search mysql	
    
  • 下载MYSQL5.7版本

    docker pull mysql:5.7 
    
  • 等待下载完成,创建mysql容器

    docker create --name mysql3306 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql:5.7
    #创建的容器名称为mysql3306
    #密码为123456
    
  • 启动容器

    docker start mysql3306
    
  • 进入到容器

    docker exec -it mysql3306 bash
    
  • mysql连接

    mysql -uroot -p
    

安装完成之后就可以通过navicate等工具进行数据库的读写,或者直接通过上面的命令进入到mysql容器内部进行读写
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值