[TOC]
Dockerfile指令
FROM 指定基础镜像
1
| FROM centos:centos7.5.1804
|
from是指定基础镜像,因此dockerfile中FROM是必备指令,必须是第一条指令。
MAINTAINER 指令
1 2
| MAINTAINER morey88516@gmail.com
|
RUN 指令 docker容器中运行命令
1
| RUN yum install -y gcc gcc-c++ autoconf automake libtool make zlib* libffi-devel
|
COPY指令 即复制上下文目录 也就是Dockerfile所在的目录中
1 2 3
|
COPY Python-3.8.2.tgz /usr/local/src
|
WORKDIR指令 容器中工作目录 类似于cd
ENV 设置容器环境变量
1 2
| # python3.8/bin目录的下的命令 设置为容器环境变量 ENV PATH /usr/local/python3.8/bin:$PATH
|
ADD 指令 添加上下文目录 也就是Dockerfile所在的目录中 文件(hello.py)至容器
1
| ADD hello.py /usr/local/script #容器中的路径 /usr/local/script
|
docker指令
拉取镜像
1
| docker pull python:3.8.2
|
查看镜像
运行容器
后台运行容器 -d 指定容器运行模式
1
| docker run -itd --name python:3.8.2 /bin/bash
|
启动容器 并已命令行方式进入容器
1
| docker run -it python:3.8.2 /bin/bash
|
查看已在运行的容器
删除容器 -f 强制删除镜像
1 2
| docker images docker rmi -f 镜像id
|
删除容器进程
1 2
| docker ps -a docker rm 容器id
|
docker清理dockerfile构建后缓存
将文件拷贝到容器中 容器id:6a5fadd3fe5b
1 2
| docker cp /Downloads/chromedriver_linux64.zip 6a5fadd3fe5b:/usr/local/script
|
将容器中的文件拷贝出来到主机上 容器id:736e09bc1479
1 2
| docker cp 736e09bc1479:/usr/locals/script/screenshot.png /opt/
|
构建镜像,在Dockerfile文件所在目录执行
1
| docker build -t nginx:v1 .
|
运行构建的自定义镜像
1
| docker run -d --name cloudewise -v /usr/local/script:/usr/local/script cloudewise:v1
|
基于shell的自定义镜像运行 用于程序测试
1
| docker run cloudewise:v1 /bin/sh -c "python3 /usr/local/script/hello.py"
|
Dockerfile实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
FROM centos:centos7.5.1804
MAINTAINER morey88516@gmail.com
RUN yum install -y gcc gcc-c++ autoconf automake libtool make zlib* libffi-devel
COPY Python-3.8.2.tgz /usr/local/src WORKDIR /usr/local/src RUN tar -xf Python-3.8.2.tgz WORKDIR Python-3.8.2 RUN ./configure --prefix=/usr/local/python3.8 && make && make install ENV PATH /usr/local/python3.8/bin:$PATH RUN python3 -m pip install --upgrade pip
RUN mkdir /usr/local/script
ADD requirements.txt /usr/local/script ADD hello.py /usr/local/script
RUN pip3 install openpyxl python-telegram-bot selenium==4.7.2
VOLUME /usr/local/script
WORKDIR /usr/local/script
CMD ["python3", "hello.py"]
|