四、Docker,dockerfile,docker-compose使用(结合tomcat和mysql安装及配置)

Docker使用

相关命令看教程

  • 查看当前镜像,容器等信息docker system df
  • 进入容器(it是显示交互界面)
docker exec -it 容器ID /bin/bash

退出进入的容器ctrl+d
终止容器ctrl+c

  • 删除已停止的所有容器docker container prune
  • 删除虚悬镜像(none的镜像)docker image prune

dockerfile使用

教程
创建一个Dockerfile文件,"."表示当前目录。会自动去找Dockerfile文件

  • 创建自定义镜像docker build -t 镜像名 .

docker-compose使用

  • 注意要在有docker-compose.yml文件目录里运行命令
  • 首先介绍几个术语。
    服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
    项目 (project):由一组关联的应用容器组成的一个完整业务单元。
    可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。
  • 场景
    最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。

docker-compose.yml的编写

  • 只能使用空格不能使用tab(制表符),所以用Notepad++编辑时,可以点击设置-》首选项-》语言-》右下方有个替换为空格。这样输入tab就是相当于好几个空格
  • 以下代码如果复制到docker-compose.yml中会格式错乱,所以需要用原样格式黏贴模式。操作如下
在vi docker-compose.yml下输入`:`,然后set paste然后回车,再按“i”,进入编辑模式,再复制代码

tomcat案例

在/usr/local/docker/tomcat下编写(如果没有文件夹就新建)
vi docker-compose.yml

代码如下mytomcat是镜像名,container_name容器名,image是镜像源,指定版本写法image: tomcat:9.01

version: '3.1'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
    environment:
      TZ: Asia/Shanghai

启动容器(停止容器ctrl+c)

docker-compose up

常用命令

启动compose(后台运行,即守护进程)
docker-compose up -d
查看日志
docker-compose logs tomcat
监听日志
docker-compose logs -f tomcat
停止容器
docker-compose stop tomcat
删除容器(推荐先执行停止容器)
docker-compose rm tomcat

其他命令查看点这里

  • mysql案例

这是5.7版本

version: '3.1'
services:
  mysql:
    restart: always
    image: mysql:5.7.28
    container_name: mysql
    ports:
      - 3306:3306
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - ./mysql-data:/var/lib/mysql

这是5.8版本

version: '3.1'
services:
  db:
    # 目前 latest 版本为 MySQL8.x
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    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
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
  # MySQL 的 Web 客户端
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

你可能感兴趣的:(【千锋达摩院】微服务架构,2.0)