博主昵称:跳楼梯企鹅
博主主页面链接:博主主页传送门博主专栏页面连接:专栏传送门--网路安全技术
创作初心:本博客的初心为与技术朋友们相互交流,每个人的技术都存在短板,博主也是一样,虚心求教,希望各位技术友给予指导。
博主座右铭:发现光,追随光,成为光,散发光;
博主研究方向:渗透测试、机器学习 ;
博主寄语:感谢各位技术友的支持,您的支持就是我前进的动力 ;
目录
一、Docker
1.服务docker化
部署user-service
- 编写Dockfile文件
#源镜像
FROM golang:1.13
#设置工作目录
WORKDIR $GOPATH/src
RUN mkdir user-service
COPY user-service $GOPATH/src/user-service
#切换工作目录
WORKDIR $GOPATH/src/user-service
RUN mkdir log
#暴露端口
EXPOSE 9090
#最终运行docker的命令
ENTRYPOINT ["nohup","./user-service",">log/log.log", "&"]
- 编写build.sh脚本
#!/bin/bash
rm -rf user-service
go build .
docker build -t mic-user-service -f Dockerfile .
执行build.sh构建镜像
- 编写start.sh脚本
#!/bin/bash
docker stop mic_user_service
docker rm mic_user_service
docker run -p 9090:9090 --name mic_user_service -v /usr/local/docker/micservice/user-service/log:/go/src/user-service/log -d mic-user-service
启动容器 ./start.sh
user-server服务依赖mysql服务,请访问 docker搭建mysql
部署user-edge-service
- 编写Dockfile文件
#源镜像
FROM golang:1.13
#设置工作目录
WORKDIR $GOPATH/src
RUN mkdir user-edge-service
COPY user-edge-service $GOPATH/src/user-edge-service
COPY config.ini $GOPATH/src/user-edge-service
#切换工作目录
WORKDIR $GOPATH/src/user-edge-service
RUN mkdir log
#暴露端口
EXPOSE 9091
#最终运行docker的命令
ENTRYPOINT ["nohup","./user-edge-service",">/dev/null", "&"]
- 编写build.sh脚本
#!/bin/bash
rm -rf user-edge-service
go build .
docker build -t mic-user-edge-service:latest
执行build.sh构建镜像
- 编写start.sh脚本
#!/bin/bash
docker stop mic_user_edge_service
docker rm mic_user_edge_service
docker run -p 9091:9091 --name mic_user_edge_service -v /usr/local/docker/micservice/user-edge-service/log:/go/src/user-edge-service/log -d mic-user-edge-service
启动容器 ./start.sh
- 访问user-edge-service服务测试
http://172.16.57.110:9091/adapi/login
使用docker-compose编排容器
上面的方式需要一个一个单独启动容器服务,我们可以是用docker-compose来管理容器
-
安装docker-compose
yum install docker-conpose
-
编写docker-compose.yml
version: '3'
networks:
default:
external:
name: micservice-network
services:
mysql:
image: mysql:5.7
ports:
- 3306:3306
volumes:
- /usr/local/docker/mysql/conf:/etc/mysql
- /usr/local/docker/mysql/logs:/var/log/mysql
- /usr/local/docker/mysql/data:/var/lib/mysql
environment:
- TZ="Asia/Shanghai"
redis:
image: redis:5.0.4
ports:
- 6379:6379
volumes:
- /usr/local/docker/redis/logs:/usr/local/redis/logs
- /usr/local/docker/redis/redis.conf:/etc/redis_