Hello World

Your description here.

Docker-compose

默认分类 6 评

1.1 下载 Docker-Compose

#去github官网搜索docker-compose,下载1.24.1版本的Docker-Compose
下载路径:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86\_64

1.2 设置权限

#需要将DockerCompose文件的名称修改一下,给予DockerCompose文件一个可执行的权限
mv docker-compose-Linux-x86\_64 docker-compose
chmod 777 docker-compose

1.3 配置环境变量

#方便后期操作,配置一个环境变量
#将docker-compose文件移动到了/usr/local/bin,修改了/etc/profile文件,给/usr/local/bin配置到了PATH中
 
mv docker-compose /usr/local/bin
vi /etc/profile
#添加内容:export PATH=$JAVA\_HOME:/usr/local/bin:$PATH
source /etc/profile

1.4 测试

在任意目录下输入docker-compose

version:'' #版本
services:服务
    服务1:web
    #服务配置
    images
    build
    network
#其他配置 网络/卷 、 全局规则

2.Docker-Compose 管理 MySQL 和 Tomcat 容器

yml文件以key:value方式来指定配置信息
多个配置信息以换行+缩进的方式来区分
在docker-compose.yml文件中,不要使用制表符
 
version: '3.1'
services:
  mysql:           # 服务的名称
    restart: always   # 代表只要docker启动,那么这个容器就跟着一起启动
    image: daocloud.io/library/mysql:5.7.4  # 指定镜像路径
    container\_name: mysql  # 指定容器名称
    ports:
      - 3306:3306   #  指定端口号的映射
    environment:
      MYSQL\_ROOT\_PASSWORD: root   # 指定MySQL的ROOT用户登录密码
      TZ: Asia/Shanghai        # 指定时区
    volumes:
     - /opt/docker\_mysql\_tomcat/mysql\_data:/var/lib/mysql   # 映射数据卷
  tomcat:
    restart: always
    image: daocloud.io/library/tomcat:8.5.15-jre8
    container\_name: tomcat
    ports:
      - 8080:8080
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /opt/docker\_mysql\_tomcat/tomcat\_webapps:/usr/local/tomcat/webapps
      - /opt/docker\_mysql\_tomcat/tomcat\_logs:/usr/local/tomcat/logs

3. 使用 docker-compose 命令管理容器

在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件
 
#1.基于docker-compose.yml启动管理的容器
docker-compose up -d
 
#2.关闭并删除容器
docker-compose down
 
#3.开启|关闭|重启已经存在的由docker-compose维护的容器
docker-compose start|stop|restart
 
#4.查看由docker-compose管理的容器
docker-compose ps
 
#5.查看日志
docker-compose logs -f

4.docker-compose 配合 Dockerfile 使用

使用 docker-compose.yml 文件以及 Dockerfile 文件在生成自定义镜像的同时启动当前镜像,并且由 docker-compose 去管理容器

4.1docker-compose 文件

编写docker-compose文件
 
# yml文件
version: '3.1'
services:
  ssm:
    restart: always
    build:            # 构建自定义镜像
      context: ../      # 指定dockerfile文件的所在路径
      dockerfile: Dockerfile   # 指定Dockerfile文件名称
    image: ssm:1.0.1
    container\_name: ssm
    ports:
      - 8081:8080
    environment:
      TZ: Asia/Shanghai

4.2 Dockerfile 文件

编写Dockerfile文件
 
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps

4.3 运行

#可以直接基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
docker-compose up -d
# 如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
#重新构建自定义镜像
docker-compose build
#运行当前内容,并重新构建
docker-compose up -d --build

九、CI、CD 介绍及准备

1.CI、CD 引言

项目部署
1. 将项目通过 maven 进行编译打包
2. 将文件上传到指定的服务器中
3. 将 war 包放到 tomcat 的目录中
4. 通过 Dockerfile 将 Tomcat 和 war 包转成一个镜像,由 DockerCompose 去运行容器
项目更新后,需要将上述流程再次的从头到尾的执行一次,如果每次更新一次都执行一次上述操作,很费时,费力。我们就可以通过 CI、CD 帮助我们实现持续集成,持续交付和部署

2.CI 介绍

CI(continuous intergration)持续集成
持续集成:编写代码时,完成了一个功能后,立即提交代码到 Git 仓库中,将项目重新的构建并且测试。

1. 快速发现错误。
2. 防止代码偏离主分支。

3. 搭建 Gitlab 服务器

3.1. 准备环境

实现 CI,需要使用到 Gitlab 远程仓库,先通过 Docker 搭建 Gitlab
创建一个全新的虚拟机,并且至少指定 4G 的运行内存,4G 运行内存是 Gitlab 推荐的内存大小。
并且安装 Docker 以及 Docker-Compose

3.2 修改 ssh 的 22 端口

#将ssh的默认22端口,修改为60022端口,因为Gitlab需要占用22端口
 
vi /etc/ssh/sshd\_config
  PORT 22 -> 60022
systemctl restart sshd

3.3 编写 docker-compose.yml

docker-compose.yml文件去安装gitlab(下载和运行的时间比较长的)
 
version: '3.1'
services:
 gitlab:
  image: 'twang2218/gitlab-ce-zh:11.1.4'
  container\_name: "gitlab"
  restart: always
  privileged: true
  hostname: 'gitlab'
  environment:
   TZ: 'Asia/Shanghai'
   GITLAB\_OMNIBUS\_CONFIG: |
    external\_url 'http://192.168.199.110'
    gitlab\_rails\['time\_zone'\] = 'Asia/Shanghai'
    gitlab\_rails\['smtp\_enable'\] = true
    gitlab\_rails\['gitlab\_shell\_ssh\_port'\] = 22
  ports:
   - '80:80'
   - '443:443'
   - '22:22'
  volumes:
   - /opt/docker\_gitlab/config:/etc/gitlab
   - /opt/docker\_gitlab/data:/var/opt/gitlab
   - /opt/docker\_gitlab/logs:/var/log/gitlab

十、搭建 GitlabRunner

1. 准备文件

daemon.json
 
{
“registry-mirrors”: \[“https://registry.docker-cn.com”\],
“insecure-registries”: \[ip:ports\]
}
 
文件夹 environment里面准备maven安装包,jdk1.8安装包,Dockerfile,daemon.json以及docker-compose

2. 开始搭建

创建工作目录 /usr/local/docker\_gitlab-runner
将 docker-compose.yml 文件以及 environment 目录全部复制到上述目录中
在宿主机启动 docker 程序后先执行 sudo chown root:root /var/run/docker.sock (如果重启过 docker, 重新执行)
在 / usr/local/docker\_gitlab-runner 目录中执行 docker-compose up -d –build 启动容器
添加容器权限,保证容器可以使用宿主机的 dockerdocker exec -it gitlab-runner usermod -aG root gitlab-runner
注册 Runner 信息到 gitlab

3. 进入后续步骤

docker exec -it gitlab-runner gitlab-runner register
 
# 输入 GitLab 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.199.109/
 
# 输入 GitLab Token
Please enter the gitlab-ci token for this runner:
1Lxq\_f1NRfCfeNbE5WRh
 
# 输入 Runner 的说明
Please enter the gitlab-ci description for this runner:
可以为空
 
# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
Please enter the gitlab-ci tags for this runner (comma separated):
deploy
 
# 这里选择 true ,可以用于代码上传后直接执行(根据版本,也会没有次选项)
Whether to run untagged builds \[true/false\]:
true
 
# 这里选择 false,可以直接回车,默认为 false(根据版本,也会没有次选项)
Whether to lock Runner to current project \[true/false\]:
false
 
# 选择 runner 执行器,这里我们选择的是 shell
Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:
shell

十一、整合项目入门测试

1. 创建项目

创建 maven 工程,添加 web.xml 文件,编写 HTML 页面

2. 编写. gitlab-ci.yml 文件

stages:
  - test
 
test:
  stage: test
  script:
    - echo first test ci   # 输入的命令

3. 将 maven 工程推送到 gitlab 中

执行git命令推送到Gitlab
 
git push origin master

4. 查看效果

可以在 gitlab 中查看到 gitlab-ci.yml 编写的内容

十二、完善项目配置

添加 Dockerfile 以及 docker-compose.yml, 并修改. gitlab-ci.yml 文件

1. 创建 Dockerfile

\# Dockerfile
FROM daocloud.io/library/tomcat:8.5.15-jre8
COPY testci.war /usr/local/tomcat/webapps

2. 创建 docker-compose.yml

\# docker-compose.yml
version: "3.1"
services:
  testci:
    build: docker
    restart: always
    container\_name: testci
    ports:
      - 8080:8080

3. 修改. gitlab-ci.yml

\# ci.yml
stages:
  - test
 
test:
  stage: test
  script:
    - echo first test ci
    - /usr/local/maven/apache-maven-3.6.3/bin/mvn package
    - cp target/testci-1.0-SNAPSHOT.war docker/testci.war
    - docker-compose down
    - docker-compose up -d --build
    - docker rmi $(docker images -qf dangling=true)

剩下的是 Jenkins+Gitlib 实现自动化部署上线,我的博客有单独的文章介绍自动化部署,感兴趣的小伙伴可以学习学习。
Gitlib 文章:https://www.lixian.fun/category/devops/gitlib
Jenkins 文章:https://www.lixian.fun/category/devops/jenkins

webpack
6 评论
    tgwcnfwrmiSogo BrowserWindows 10
    10月6日回复

    做了几十年的项目 我总结了最好的一个盘(纯干货)

    lxitkiblmbSogo BrowserWindows 10
    10月7日回复

    2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

    11月2日回复

    华纳东方明珠客服电话是多少?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】
    华纳东方明珠开户专线联系方式?(??155--8729--1507?《?薇-STS5099】【?扣6011643?】

    11月7日回复

    华纳万宝路客服电话是多少?(?183-8890-9465—《?薇-STS5099】【?扣6011643??】
    华纳万宝路开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
    华纳圣淘沙客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳圣淘沙客服开户流程图(?183-8890--9465—《?薇-STS5099】

    11月10日回复

    东方明珠客服开户联系方式【182-8836-2750—】?μ- cxs20250806
    东方明珠客服电话联系方式【182-8836-2750—】?- cxs20250806】
    东方明珠开户流程【182-8836-2750—】?薇- cxs20250806】
    东方明珠客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    11月21日回复

    寻找华纳圣淘沙公司开户代理(183-8890-9465薇-STS5099】

    华纳圣淘沙官方合作开户渠道(183-8890-9465薇-STS5099】

    华纳圣淘沙公司开户代理服务(183-8890-9465薇-STS5099】

    华纳圣淘沙公司开户咨询热线(183-8890-9465薇-STS5099】

    联系客服了解华纳圣淘沙开户

    (183-8890-9465薇-STS5099】
    华纳圣淘沙公司开户专属顾问

    (183-8890-9465薇-STS5099】