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

 

posted @ 2023-05-18 15:59  小粉优化大师  阅读(30)  评论(0编辑  收藏  举报