写点什么

极客时间运维进阶训练营第三周作业

作者:曹张倪
  • 2022-11-13
    上海
  • 本文字数:1339 字

    阅读完需:约 4 分钟

极客时间运维进阶训练营第三周作业

基于 docker-compose 实现对 Nginx+Tomcat Web 服务的单机编排

  • 在当前目录创建 docker-compose.yml 文件,并写入如下的内容:

version: '3.8' # docker-compose文件格式版本services: # 定义该compose下的服务(注意compose中的管理都是以service为单位,各个服务之间的相互访问也是通过service,类似一个域名)  nginx-server: # 定义一个叫nginx-service的服务    image: nginx:1.22.0-alpine    # container_name: nginx-web1 # 定义容器的名称,尽量不要使用#    network_mode: bridge #网络1,使用docker安装后的默认网桥    expose:      - 80      - 443    ports:      - "80:80"      - "443:443"    networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有两块网卡      - front      - backend    links: # 依赖于tomcat-server服务,即需要等tomcat-server服务启动后自己的服务才会启动      - tomcat-server
tomcat-server: #image: tomcat:7.0.93-alpine image: registry.cn-hangzhou.aliyuncs.com/zhangshijie/tomcat-myapp:v1 container_name: tomcat-app1 # 注意该容器中有代码会去连mysql数据库(在/data/tomcat/webapps/myapp/index.jsp文件中) ##network_mode: bridge #网络1,使用docker安装后的默认网桥 #expose: # - 8080 #ports: # - "8080:8080" networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡 - backend links: - mysql-server
mysql-server: image: mysql:5.6.48 container_name: mysql-container# network_mode: bridge #网络1,使用docker安装后的默认网桥 volumes: # 通过挂载卷的方式将mysql数据持久化 - /data/mysql:/var/lib/mysql #- /etc/mysql/conf/my.cnf:/etc/my.cnf:ro environment: - "MYSQL_ROOT_PASSWORD=12345678" - "TZ=Asia/Shanghai" expose: - 3306 ports: - "3306:3306" networks: #网络2,使用自定义的网络,如果网络不存在则会自动创建该网络并分配子网,并且容器会有一块网卡 - backend

networks: # 网路相关配置 front: #自定义前端服务网络,需要docker-compose创建 driver: bridge backend: #自定义后端服务的网络,要docker-compose创建 driver: bridge default: #使用已经存在的docker0默认172.17.0.1/16的网络 external: name: bridge
复制代码
  • 执行如下命令启动服务

docker-compose up -d
复制代码
  • 由于 nginx 的镜像中没有配置到 tomcat 的转发(正常需要配置到镜像中),所以需要做如下的操作

# 进入nginx容器,修改/etc/nginx/conf.d/default.conf,添加如下的转发配置location /myapp {        proxy_pass http://tomcat-server:8080; }# 执行如下命令reloadnginx -s reload
复制代码
  • 浏览器通过 http://xxxxx/myapp 进行访问

安装 GitLab、创建 group、user 和 project 并授权


熟练 Git 命令的基本使用,通过 Git 命令实现源代码的 clone、push 等基本操作


熟练掌握对 GitLab 服务的数据备份与恢复


部署 Jenkins 服务器并安装 GitLab 插件、实现代码免秘钥代码 clone


用户头像

曹张倪

关注

还未添加个人签名 2018-08-24 加入

还未添加个人简介

评论

发布
暂无评论
极客时间运维进阶训练营第三周作业_曹张倪_InfoQ写作社区