Docker学习
创建
在一个文件夹下创建Dockerfile文件。
检验连接:在该位置打开git bash,输入 docker run hello-world
之后会出现Hello from Docker!
。
- 报错:
docker: error during connect: In the default daemon configuration on Windows
。解决方式:打开Docker客户端。
设置容器(container)
注:winpty用于解决输入不是TTY的兼容性问题。
基于ubuntu镜像创建一个容器:winpty docker run -it ubuntu bash
基于python的:winpty docker run -it python:3.9
基于已有镜像:winpty docker run -it test:pandas
镜像(image)
docker build 函数
docker build
函数用于从 Dockerfile 构建镜像。
docker build
函数的基本语法如下:
docker build [OPTIONS] PATH
构建方式:
docker build -t test:pandas .
是一个用于构建 Docker 镜像的命令,其中镜像的名称为 “test”,标签为 “pandas”。最后的 .
指定了构建上下文,即当前目录。
t
选项用于指定构建的镜像的名称和标签。在这种情况下,名称为 “test”,标签为 “pandas”。- 一旦镜像构建完成,就可以使用
docker run
函数来运行它。
Dockerfile
实际上都是在编写命令输入的参数。
FROM python:3.9 相当于
常见的 Dockerfile 指令及其解释如下:
- FROM - 指定基础镜像。
FROM python:3.9
- RUN - 在终端的运行命令。
RUN pip install pandas
- WORKDIR - 设定工作目录。
WORKDIR /文件名
- COPY - 复制本地文件到镜像。
COPY 本地文件名 镜像中文件名
- ADD - 和 COPY 类似,但有额外功能如提取压缩文件
- CMD - 容器启动时默认执行的命令
- ENTRYPOINT - 配置容器启动后(docker run)的初始化命令。
ENTRYPOINT ["bash"]
- ENV - 设置环境变量
- ARG - 定义构建镜像时的变量
- VOLUME - 创建数据卷挂载点
- EXPOSE - 暴露容器使用的端口
- USER - 指定执行后续命令的用户
- HEALTHCHECK - 指定健康检查命令
- ONBUILD - 为他人构建的镜像添加触发器
- STOPSIGNAL - 设置停止容器的系统调用信号
- LABEL - 添加镜像元数据
从外部传入参数
利用python的sys.argv:
例如,在命令行运行:
python test.py arg1 arg2 arg3
输出将是:
['test.py', 'arg1', 'arg2', 'arg3']