背景
Docker 是一个开源的应用容器引擎。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
流程简介
本文环境构建主要流程是现有一台有网络的Linux机器上搭建一套python环境,然后打包下载到另一台无网机器,并实现运行检查。
流程详细
步骤一:构建镜像
Dockerfile是用于构建Docker镜像的文本文件,它包含了一系列指令和参数,用于定义如何构建Docker镜像。以下是Dockerfile的基本语法:
- FROM:指定基础镜像
- MAINTAINER:指定镜像维护者
- RUN:在镜像中执行命令
- CMD:指定容器启动时要执行的命令
- EXPOSE:指定容器对外开放的端口
- ENV:设置环境变量
- ADD:复制文件或目录到镜像中
- COPY:复制文件或目录到镜像中
- ENTRYPOINT:指定容器启动时要执行的命令
- VOLUME:指定容器挂载的数据卷
- USER:指定运行容器的用户
以上是Dockerfile的基本语法,还有其他指令和参数可以根据需要使用。编写好Dockerfile后,可以使用docker build命令来构建镜像。
#syntax=docker/dockerfile:1
FROM python:3.7.5-slim
WORKDIR /app
RUN pip3 install pandas
docker build -f [dockerfilePath] -t [imageName] .
# .不要漏掉
步骤二:打包环境
# 将镜像打包成tar文件
docker save -o [fileName.tar] [imageName]
# 将容器打包成tar文件
docker export -o [fileName.tar] [containerName]
# 其他常用命令
## 启动镜像,形成容器
docker run -it --name [containerName] [imageName] /bin/bash
## 用容器形成新镜像
docker commit [containerID] [imageName]
步骤三:新环境中导入镜像
docker import [fileName.tar] [imageName]
步骤四:检验
docker exec -it [containerID] /bin/bash
# Ctrl+P+Q(退出容器但不关闭,exit退出,无运行程序则关闭)
docker images # 查看现有镜像
docker ps -a # 查看现有容器