Docker--02 Dockerfile和Dockerhub

1. Dockerfile

1.1 Dockerfile作用

  • 一个用来构建镜像的文本文件
  • 包含了多条构建镜像所需的指令和说明
  • 用于构建docker 镜像

1.2 Dockerfile字段详解

  • FROM: 指定在哪个镜像的基础上创建
  • LABEL: 指定维护人员,不执行
  • RUB: 一般需要安装的依赖等脚本
  • ENV: 在容易哪创建环境变量
  • COPY: 复制文件/目录到容器中
  • WORKDIR: 切换目录
  • USER: 指定运行其他命令的用户
  • VOLUME: 指定需要持久化保存的目录(数据备份)
  • ENTRYPOINT&CMD: 指定容器运行后的命令

1.3 脚本示例

  • 命令
# 创建文件夹
mkdir -p docker_exp/test && cd docker_exp/test

# 编辑
vim Dockerfile

# 打包
# -t 镜像名称 -f 待打包镜像文件(当前目录下可以使用.代替)
docker build -t apitest .

# 运行镜像 
# --rm 容器退出后自动删除容器及匿名卷
docker run --name apitest1  --rm apitest1
  • Dockerfile文件内容
# Dockerfile

# 指在哪个镜像的基础上创建
FROM centos

# 指定维护人员
# 不执行
LABEL maintainer='zy001'

# 主要命令部分
RUN apt-get update &&  apt-get install -y nginx

# 运行容器时输出方式1
# 运行命令后带有其他命令是CMD命令不输出
# 必须使用双引号
CMD [ "echo', 'BUILD OK" ]

# 运行容器时输出方式2
# 运行命令后带有其他命令时CMD命令继续输出
# 必须使用双引号
ENTRYPOINT [ "bin/cat" ]
CMD [ "etc/passwd" ]

2. flask项目运行

FROM python:3-alpine3.13

LABEL maintainer='zy'
LABEL description='simple deploying flask_project'

WORKDIR /usr/src/app

# COPY ./demo  ./demo

# 解压
ADD ./demo.tar.gz ./

WORKDIR demo

RUN pip install -i https://pypi.douban.com/simple -r rqm.txt

# 将源代码映射到宿主机
# VOLUME /usr/src/app/demo

EXPOSE 5000

CMD [ 'python', 'flask-demo.py' ]
  • 打包并查看
# 打包 
docker build -t apitest .

# 运行
docker run -it --name apitest -p 8000:5000  apitest /bin/sh

# 查看运行状态
docker ps -a

# 访问
curl 'http://127.0.0.1:8000/api'

3. DockerHub仓库

# 1.输入用户名密码登陆
docker login

# 2. 标记本地镜像,将其归入某一仓库(也可在打包是加上仓库名)
docker tag image_name:v1.0 zyanwei2011/apitest:v1.0

# 3.推送
docker push zyanwei2011/apitest:v1.0

猜你喜欢

转载自blog.csdn.net/qq_25672165/article/details/118707372