Docker-Dockerfile基础介绍和入门实战
1、基础知识
1.1、镜像创建流程
1、找一个镜像: ubuntu 2、创建一个容器: docker run ubuntu 3、进入容器: docker exec -it 容器 命令 4、操作: 各种应用配置 ... 5、构造新镜像: docker commit 问题:慢,繁琐、手工易出错
1.2、Dockerfile简介
Dockerfile类似于我们学习过的脚本,将我们在上面学到的docker镜像,使用自动化的方式实现出来。
注意: Dockerfile 在使用的时候,首字母必须大写。
1.3、docker build 命令语法
1.3.1、构建镜像命令格式
docker build -t [镜像名]:[版本号] [Dockerfile所在目录]
1.3.2、构建示例
docker build -t nginx:v0.2 /opt/dockerfile/nginx/
1.3.3、参数解析
-t 指定构建后的镜像信息,默认是以构建后的docker image的id号为镜像名称
/opt/dockerfile/nginx/ 代表Dockerfile存放位置,如果是当前目录,则用 .(点)表示
2、Dockerfile入门示例【配置python镜像pip仓库地址】
2.1、创建Dockerfile专用目录
mkdir /data/docker/base -p && cd /data/docker/base
2.2、准备文件
cat << 'CAT_END' >pip.conf [global] index-url = https://pypi.douban.com/simple CAT_END touch Dockerfile
2.3、编写Dockerfile
cat << 'CAT_END' >Dockerfile # 基础镜像 FROM ubuntu # 作者信息 MAINTAINER test@test.com # 执行操作 RUN apt-get update && apt-get install python3 -y && apt-get install python3-pip && apt-get autoclean && apt-get clean && apt-get autoremove -y WORKDIR /root/.pip/ ADD ./pip.conf ./pip.conf WORKDIR / # 入口指令 ENTRYPOINT ["/bin/bash"] CAT_END
2.4、构建镜像
base]# docker build -t python3:v0.1 . [+] Building 87.7s (9/9) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 360B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 0.0s => [1/5] FROM docker.io/library/ubuntu 0.0s => [internal] load build context 0.0s => => transferring context: 144B 0.0s => [2/5] RUN apt-get update && apt-get install python3 -y && apt-get install python3-pip -y 86.2s => [3/5] WORKDIR /root/.pip/ 0.0s => [4/5] ADD ./pip.conf ./pip.conf 0.0s => exporting to image 1.4s => => exporting layers 1.4s => => writing image sha256:2bc7fdaf3f3f393c1ec551318856b23f89f891e22975b9f5178424144fd9a2d7 0.0s => => naming to docker.io/library/python3:v0.1 0.0s [root@redis-01 base]# cat Dockerfile
2.5、运行镜像检查
]# docker run -it --name python python3:v0.1 root@b80fe41d902e:/# cat /root/.pip/pip.conf [global] index-url = https://pypi.douban.com/simple