docker

docker

1. dokcer概念

镜像:docker中的概念,将项目以镜像的方式发布到docker中,换言之, 镜像就是一个项目。
容器:镜像可以创建无数个容器,每个容器是一个进程,各个容器之间相互独立,互相隔离(隔离是指用一种方式来满足文件系统的隔离,每个容器只能访问文件系统中属于自己的区域,区域可以看做是一个专属于当前容器的小型的文件系统)。也正因为如此,使用docker ps只能查看所有正在运行的容器信息。


2. Dokcerfile

2.1 build

  1. 创建文件夹: /usr/local/docker-projects/ :专门用来存放发布的docker项目。
  2. 新建文件夹:/docker-demo ,用idea生成一个简单的web项目,我这里项目名是docker-demo-0.0.1-SNAPSHOT.jar,放在此文件夹下。
  3. 新建Dockerfile文件:
FROM openjdk:8 #依赖java8的jdk镜像
MAINTAINER zp
ADD docker-demo-0.0.1-SNAPSHOT.jar docker-demo.jar
EXPOSE 8080 # 和application.yml中的server port一致
ENTRYPOINT ["java","-jar","/docker-demo.jar"]
  1. 构建镜像
    进入 /usr/local/docker-projects/docker-demo路径执行命令:
docker build -t docker-demo:v1 .
  • . 是告诉docker build命令把当前文件夹下所有的内容都打入镜像内。
  • -t 是 tag的缩写。

5、docker images查看所有镜像。

2.2 run

docker run -d -p 2001:8080 docker-demo:v1

2.3 修改镜像

在需要定制容器功能时,比如修改配置文件,可以进入容器内部修改相应文件然后提交镜像,最后可以提交到docker-hub。


2.2 高级

  1. 多阶段构建镜像:可以把多个镜像集成在一个镜像中,在一个镜像中实现多种功能。
FROM jrottenberg/ffmpeg:3.3-alpine

FROM openjdk:8
MAINTAINER zp

WORKDIR /video/app

COPY --from=0 / /
COPY hcnet /home/opt/hcnet
#COPY ../app/application.yml
#ADD ../app/*.jar video.jar

ENTRYPOINT ["java","-jar","video-0.0.1-SNAPSHOT.jar","--spring.config.location=application.yml"]

EXPOSE 8003

3. docker-compose

​ docker-compose是一个存放build 和 run命令的文件,可以一次构建多个镜像并启动多个容器。其中,build需要指定Dockrfile或从hub拉取镜像,run可以配置环境变量、卷映射、端口等等,可以这样理解,在run的时候添加的命令参数都可以写到docker-compose文件中,除此之外,docker-compose还可以指定各容器的依赖关系以控制启动顺序。通过 -f 可以指定特定的docker-compose.yml文件启动。

  1. docker-compose-hub.yml 是从docker-hub上拉取。没有build镜像这一过程。
version: "3"
services:
  web:
    image: zzpp/video:v5
    container_name: video
    ports:
      - 8003:8003
    volumes:
      - ./app:/video/app
    environment:
      TZ: Asia/Shanghai
    restart: unless-stopped
    depends_on:
      - nhf
  nhf:
    image: zzpp/nginx-http-flv:v6
    container_name: nhf
    ports:
      - 1935:1935
      - 9000:9000
    restart: unless-stopped
  1. docker-compose-hub.yml 是从本地路径下的Dockerfile下build镜像。
version: "3"
services:
  web:
    image: zzpp/video
    build:
      context: ./deploy
      dockerfile: dockerfile
    container_name: video
    ports:
      - 8003:8003
    volumes:
      - ./app:/video/app
    environment:
      TZ: Asia/Shanghai
    restart: unless-stopped
    depends_on:
      - nhf
  nhf:
    image: zzpp/nhf
    build:
      context: ../nginx-http-flv/deploy
      dockerfile: dockerfile
    container_name: nhf
    ports:
      - 1935:1935
      - 9000:9000
    restart: unless-stopped
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值