1. 安装Docker, Docker Compose Ce,具体参考里面的教程学习一下
2.docker-compose.yml配置文件
version: '3' #docker compose版本 services: golang: #go web 服务 restart: always #重启模式 image: golang:latest #使用最新的镜像 ports: #端口映射8888, 服务器得配置安全组策略 - "8888:8888" volumes: #挂载,文件映射 - ./go/src/blogserver:/go/src/blogserver #服务器源码.也可以build后挂载然后install - ./go/logs:/var/log/blogserver #服务日志的路径 - ./go/images:/home/blogserver/images #服务器图片上传的路径 command: go run /go/src/blogserver/main.go #执行命令 直接用go run了. 偷懒了 environment: #服务器日志文件环境变量, APP_CONFIG_PATH: /go/src/blogserver/config.toml networks: #容器服务,具体往下看配置 blogserver: aliases: #配置别名,在nginx反向代理使用http://golang:8888即可 - golang nginx: restart: always image: nginx:1.14 #1.14版本nginx服务器 ports: - "80:80" volumes: - ./nginx/web:/web #web应用程序目录, - ./nginx/site.conf:/etc/nginx/conf.d/default.conf #配置文件 - ./nginx/logs:/var/log/nginx #nginx日志 networks: blogserver: aliases: #别名 - nginx redis: restart: always image: redis:3.2 #3.2版本redis镜像 ports: - "6379:6379" volumes: - ./redis:/data #数据目录 - ./redis/redis.conf:/usr/local/etc/redis/redis.conf #配置目录, command: /usr/local/etc/redis/redis.conf #执行配置 networks: blogserver: aliases: #配置别名, 在go里面就可以使用redis:6379,不用具体地址访问了 - redis mysql: restart: always image: mysql:5.6 #mysql 5.6版本镜像 ports: - "3306:3306" volumes: - ./mysql/conf:/etc/mysql/conf.d #mysql配置文件 - ./mysql/data:/var/lib/mysql #数据目录 - ./mysql/logs:/logs #日志目录 - ./mysql/init:/docker-entrypoint-initdb.d #初始化脚本目录,sql.sh等 environment: #配置mysql 默认账户 root的密码 123456 MYSQL_ROOT_PASSWORD: 123456 networks: blogserver: aliases: #配置别名, 在go里面就可以使用mysql:3306,不用具体地址访问了 - mysql #网络通信服务 docker network ls,查看xxx(目录)_blogserver网络服务 networks: blogserver: #配置一个名为blogserver网络服务 driver: bridge #桥接模式 ipam: driver: default config: #自定义网桥ip段,也可以配置ipv4 v6之类,更多详细看官网 - subnet: 172.88.0.0/24