zoukankan      html  css  js  c++  java
  • docker-compose 运行 redis、tomcat、mysql等服务

    0、环境说明

    • os:Ubuntu 20.04
    • docker:Docker version 19.03.13
    • docker-compose:docker-compose version 1.27.4
    • tomcat:9.0+
    • redis:6+
    • myql:8+

    安装开始

    1、安装 VMware Workstation Pro 15版本

    2、安装 Ubuntu 20.04

    3、配置用户

    设置用户root
    用安装引导的用户登录,然后:

    $ sudo passwd root
    ---输入你想要设置的 root 密码
    

    如果安装系统的时候安装了ssh服务 ,远程调用 ssh 就需要开启root的远程访问权限

    $ vi /etc/ssh/sshd_config
    -- 将注释掉的 #PermitRootLogin prohibit-password 这一行。改为  PermitRootLogin yes
    $ systemctl restart ssh
    

    4、安装 docker

    官方文档 说的很详细(2020 年大家的文档都很好呀)简单的来看就是下面这样:

    4.1 apt 安装

    $ sudo apt-get update
    
    $ sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        gnupg-agent 
        software-properties-common
    

    4.2 添加 docker 软件源

    $ sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
       $(lsb_release -cs) 
       stable"
    

    ps:

    4.2 安装 docker

     $ sudo apt-get update
     $ sudo apt-get install docker-ce docker-ce-cli containerd.io
    
    • ce 是社区版本,ee是 docker 公司的商用版本
    • containerd 是 docker 引擎的的底层,其实容器镜像的操作应该都是 containerd 管理的

    4.3 配置镜像加速器

    如果你的网络和我一样是国内运营商的话,还需要配置一下镜像加速器地址
    我这里配置的是阿里云的加速器 : 登录阿里云 --> 进入控制台 --> 搜索“容器镜像服务”进入--> 找到“镜像加速器”菜单

    $ sudo mkdir -p /etc/docker
    $ sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
    }
    EOF
    $ sudo systemctl daemon-reload
    $ sudo systemctl restart docker
    

    5、安装 docker-compose

    官方文档 说的非常详细,简单一点就是下面这样:

    5.1 github 安装

    • curl 安装
    $ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    • 给下载的 文件加执行权限
    $ sudo chmod +x /usr/local/bin/docker-compose
    
    • 测试一下
    $ docker-compose --version
    $ docker-compose version 1.27.4, build 1110ad01
    

    打工搞成

    5.2 pip3 安装

    docker-compose 是python 写的。。。。。 我们可以用 pip3 安装

    • 安装 python3-pip3
    # Ubuntu 20.04 自己带着 python3,不过我们需要装一下pip3
    $ apt install python3-pip
    
    • 安装 docker-compose
    $ pip3 install docker-compose
    

    ps:

    • docker 和 docker-compose 是有版本对应的。

    6、安装 mysql、tomcat、redis、mongdb 、adminer、mongo-express

    adminer 是 php 写的一个简易的数据库web客户端
    mongo-express是一个MongoDB的Admin Web管理界面

    6.1 创建reids 和 mysql 配置文件

    6.1.1 mysql

    $ cd ~ # 回到home目录
    $ mkdir -p mysql/confi.d # 创建 文件夹
    $ vim mysql/conf.d/my.cnf  # 创建mysql配置文件 文件内容如下
    
    [mysqld]
    user=mysql
    default-storage-engine=INNODB
    character-set-server=utf8
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    

    6.1.2 reids

    $ cd ~ # 回到home目录
    $ mkdir -p redis/conf # 创建 文件夹
    $ vim redis/conf/redis.conf  # 创建redis配置文件 文件内容如下  这里的redis 是123456
    
    requirepass 123456
    
    stop-writes-on-bgsave-error no
    rdbcompression no
    dbfilename dump.rdb
    
    appendonly yes
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    
    dir /data/
    

    6.2 创建docker-compose.yml 文件

    $ cd ~ # 回到home目录
    $ vi docker-compose.yml # 创建 配置文件 文件内容如下
    
    version: '3.1'
    services:
        mongo:
            container_name: mongo
            image: mongo
            volumes:
                - ./mongo/db:/data/db   # /data/db是container中存放数据位置
            ports:
                - 27017:27017
            restart: always
    
            
        mongo-express:
            container_name: mongo-express
            links:
                - mongo  # 这里关联到mongo的container
            image: mongo-express
            restart: always
            ports:
                - 8081:8081
            environment:
                ME_CONFIG_BASICAUTH_USERNAME: zhangshan
                ME_CONFIG_BASICAUTH_PASSWORD: 123456
    
        mysql:
            container_name: mysql
            image: mysql
            ports:
                - 33060:33060
                - 3306:3306
            command: 
                --default-authentication-plugin=mysql_native_password
                --character-set-server=utf8mb4
                --collation-server=utf8mb4_general_ci
                --explicit_defaults_for_timestamp=true
                --lower_case_table_names=1
            restart: always
            volumes:
                - ./mysql/db:/var/lib/mysql
                - ./mysql/conf.d:/etc/mysql/conf.d
            environment:
                MYSQL_ROOT_PASSWORD: 123456
                
        adminer:
            image: adminer
            restart: always
            ports:
                - 8082:8080
            
    
        redis:
            container_name: redis
            image: redis
            restart: always
            command: redis-server /usr/local/etc/redis/redis.conf
            ports:
                - 6379:6379
            volumes:
                - ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
                - ./redis/db/:/data/
        tomcat: 
            restart: always
            image: tomcat
            container_name: tomcat
            ports: 
              - 8080:8080
            # 在docker中,右边一般都是容器内,左边都是指宿主机
            volumes: 
              - ./tomcat/webapps:/usr/local/tomcat/webapps
            environment:
              TZ: Asia/Shanghai
    

    7、启动起来

    $ cd ~
    $ docker-compose up -d
    

    8、验证
    在主机浏览器中输入
    http://Ubuntu IP 地址:8080/
    http://Ubuntu IP 地址:8081/ 用户名 zhangshan 密码 123456
    http://Ubuntu IP 地址:8082/

    tomat访问的时候应该是 404 是因为这样的

    $ docker exec -it tomcat /bin/bash  # 进入到 名字是 tomcat 的docer 容器中,并且是以/bin/bash 命令进入的
    $ ls
    
    有2个文件  webapps  和 webapps.dist  我们熟知的tomcat 首页是空的
    
    $ exit #  从容器中退出
    
    $ cd  ~/tomcat/webapps 
    $ mkdir ROOT # 创建熟悉的目录
    $ vim ROOT/index.html  # 在文件中 写入 “hello docker”
    

    在访问 http://Ubuntu IP 地址:8080/ 就会看到效果了

  • 相关阅读:
    vue-cli(vue脚手架)简单流程
    windows环境之node.js安装与环境配置
    fiddler的下载和简单使用
    Linux 配置nginx 代理tomcat,配置ssl
    来聊一聊导出数据问题
    作为一个开发人员应该具备怎么样技术栈和职业素养
    NODEJS的误打误撞
    聊一下程序员的日常
    openstack安装部署私有云详细图文
    openstack:OpenStack架构详解,
  • 原文地址:https://www.cnblogs.com/islihy/p/13946375.html
Copyright © 2011-2022 走看看