docker-compose

一.Docker-compose 安装

#1.yum安装
yum install -y docker-compose

#2.官网下载
https://github.com/docker/compose/releases

二.Docker-compose 模板

version: '版本号'
services:
    服务名称1:
        image: 容器镜像
        container_name: 容器名称
        environment:
            - 环境变量1=值1
            - 环境变量2=值2
        volumes:
            - 宿主机数据目录:容器内数据目录
        ports:
            - 宿主机端口:容器内映射端口
        networks:
            - 自定义网络名称
        links:
            - 在两个容器之间创建网络连接,使一个容器能够通过别名访问另一个容器
        command:
            - 数据库使用字符集变量时可以用
        restart: always

    服务名称2:
        image: 容器镜像
        container_name: 容器名称
        environment:
            - 环境变量1=值1
            - 环境变量2=值2
            - 环境变量2: 值2
        user: 宿主机用户:容器用户
        volumes:
            - 宿主机数据目录:容器内数据目录
        ports:
            - 宿主机端口:容器内映射端口
        networks:
            - 自定义网络名称
        links:
            - 在两个容器之间创建网络连接,使一个容器能够通过别名访问另一个容器
        depends_on:
            - 依赖服务,确保该服务启动前依赖的服务已经启动。
        restart: always 容器退出时,Docker 将自动尝试重新启动它

networks:
    default:
    external: true
    name: 自定义网络名称

三.docker-compose操作

# 第一次启动(需要创建容器)
[root@docker01 zabbix]# docker-compose up // 可以查看报错信息,前台运行
[root@docker01 zabbix]# docker-compose up -d // 放在后台运行

# 查看进程
[root@docker01 zabbix]# docker-compose ps

## 停止服务
[root@docker01 zabbix]# docker-compose stop
[root@docker01 zabbix]# docker-compose stop mysql57
## 启动服务
[root@docker01 zabbix]# docker-compose start
[root@docker01 zabbix]# docker-compose start mysql57
## 重启服务
[root@docker01 zabbix]# docker-compose restart
[root@docker01 zabbix]# docker-compose restart mysql57
## 查看日志
[root@docker01 zabbix]# docker-compose logs
[root@docker01 zabbix]# docker-compose logs zabbix-web
## 实时追踪日志
[root@docker01 zabbix]# docker-compose logs -f
[root@docker01 zabbix]# docker-compose logs -f zabbix-web
## 指定compose文件
[root@docker01 zabbix]# docker-compose -f zabbix-compose.yml ps
[root@docker01 zabbix]# docker-compose -f zabbix-compose.yml stop

四.docker-compose启动gitlab和jenkins

vim docker-compose.yml

version: '3.6'

services:
  gitlab:
    image: gitlab/gitlab-ce
    container_name: gitlab
    hostname: 10.0.0.103
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://10.0.0.103'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        prometheus['enable'] = false
        prometheus['monitor_kubernetes'] = false
        prometheus_monitoring['enable'] = false
        alertmanager['enable'] = false
        node_exporter['enable'] = false
        redis_exporter['enable'] = false
        postgres_exporter['enable'] = false
        grafana['enable'] = false
    volumes:
      - /opt/gitlab/config:/etc/gitlab
      - /opt/gitlab/logs:/var/log/gitlab
      - /opt/gitlab/data:/var/opt/gitlab
    ports:
      - 80:80
      - 443:443
      - 2222:22
    shm_size: '256m'
    restart: always

  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    volumes:
      - /opt/jenkins/data:/var/jenkins_home
      - /bin/docker:/bin/docker
      - /var/run/docker.sock:/var/run/docker.sock
      - /root/.ssh/:/root/.ssh/
      - /root/.docker/config.json:/root/.docker/config.json
    ports:
      - 8080:8080
      - 50000:50000
    privileged: true
    user: root
    restart: always
version: '3.6'
services:

    wordpress:
        image: wordpress:6.4.2
        container_name: wordpress
        environment:
            - WORDPRESS_DB_HOST=mysql57
            - WORDPRESS_DB_USER=wordpress
            - WORDPRESS_DB_PASSWORD=123
            - WORDPRESS_DB_NAME=wordpress
        volumes:
            - /data/wordpress/web:/var/www/html
        ports:
            - 80:80
        networks:
          - wordpress_network
        depends_on: 
            - mysql57        
        restart: always

    mysql57:
        image: mysql:5.7
        container_name: mysql57_wp
        environment:
            - MYSQL_ROOT_PASSWORD=123
            - MYSQL_DATABASE=wordpress
            - MYSQL_USER=wordpress
            - MYSQL_PASSWORD=123
        volumes:
            - /data/wordpress/mysql57:/var/lib/mysql
        ports:
            - 3306:3306
        networks:
          - wordpress_network
        restart: always

networks:
  wordpress_network:        
暂无评论

发送评论 编辑评论


				
上一篇
下一篇