docker入门(8)

132 阅读2分钟

本文已参加 [新人创作礼] 活动,一起开启掘金创作之旅。

上篇学习了docker compose yml文件的格式。

实战

前提是docker、docker compose 都已安装好,环境配置好! 本次实战使用docker compose 部署简单的项目,编排两个容器:mysql,自己的javaweb应用

docker file 的编写

# Docker image for springboot file run
#VERSION 0.0.1
#Author: guaner
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER guaner
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp,测试可以这
样,企业中这里建议docker真实目录并赋予权限
VOLUME /tmp
# 将jar包添加到容器中并更名为docker-compose-test.jar
ADD docker-compose-0.0.1-SNAPSHOT.jar docker-compose-test.jar
# 运行jar包
RUN bash -c 'touch /docker-compose-test.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-compose-
test.jar"]
#暴露8080端口
EXPOSE 8080  

docekr-compose file 编写

version: "3.0"
services:
  mysql: # mysql服务
    image: mysql:5.7
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
    ports:
      - "3306:3306"      #容器端口映射到宿主机的端口
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'docker-compose-boot'
      MYSQL_USER: 'guaner'
      MYSQL_PASSWORD: '123456'
    networks:
      - guaner_net
  docker-compose-test-web: #自己单独的springboot项目
    hostname: guaner
    build: ./     #需要构建的Dockerfile文件
    ports:
      - "8080:8080"      #容器端口映射到宿主机的端口
    depends_on:      #web服务依赖mysql服务,要等mysql服务先启动
      - mysql
    networks:
      - guaner_net
networks:  ## 定义本次服务的网桥
  guaner_net:
  

启动

1)构建
          docker-compose -f docker-compose-file.yml build
   (2) 启动
          docker-compose -f docker-compose-file.yml start
   (3) 停止
          docker-compose -f docker-compose-file.yml stop
   (4) 重新启动
          docker-compose -f docker-compose-file.yml restart

          

docekr Compose常用命令

    docker-compose -h                           # 查看帮助
    docker-compose up                           # 创建并运行所有容器
    docker-compose up -d                        # 创建并后台运行所有容器
    docker-compose -f docker-compose.yml up -d  # 指定模板
    docker-compose down                         # 停止并删除容器、网络、卷、镜像。
    docker-compose logs                         # 查看容器输出日志
    docker-compose pull                         # 拉取依赖镜像
    dokcer-compose config                       # 检查配置
    dokcer-compose config -q                    # 检查配置,有问题才有输出
    docker-compose restart                      # 重启服务
    docker-compose start                        # 启动服务
    docker-compose stop                         # 停止服务

这样使用docker compose 部署一个最简单的服务就完成了! 下篇我们来学习下docker 在面试中常遇见的题!