首页 > 其他 > 详细

docker-镜像制作

时间:2020-03-26 22:52:27      阅读:58      评论:0      收藏:0      [点我收藏+]

三、镜像制作

此镜像里面是没有内核的,镜像在被启动为容器后将直接使用宿主机 的内核,而镜像本身则只提供相应的 rootfs,即系统正常运行所必须的用户空间 的文件系统,比如/dev/,/proc,/bin, /etc 等目录,所以容器当中基本是没有/boot 目录的,而/boot 当中保存的就是与内核相关的文件和目录。 也不会涉及到硬件驱动,因此也用不上内核和驱动。

3.1:手动制作yum版nginx镜像

在宿主机
docker pull centos:7.7.1908
docker run -it -p 80:80 centos:7.7.1908
在容器里
[root@8c7a3f362bd6 /] 
yum install epel-release -y
yum install nginx vim net-tools -y
vim  /etc/nginx/nginx.conf
添加daemon off
rm -rf /usr/share/nginx/html/index.html
echo lou > index.html
不要exit
更换窗口
在宿主机基于容器 ID 提交为镜像 
root@ubuntu:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED                                                                  STATUS              PORTS                NAMES
8c7a3f362bd6        centos:7.7.1908     "/bin/bash"         11 minutes ago    
带 tag 的镜像提交:                                                       
root@ubuntu:~#  docker commit -a "loufangyi 895320177@qq.com" -m "nginx 1.16.1" 8c7a3f362bd6 centos-nginx:1.16.1                   sha256:e440a6085a7febb0e2a8381e113402406cfc6a716773a46790f49cfc43bc1385
root@ubuntu:~# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-nginx        1.16.1              e440a6085a7f        23 seconds ago      444MB
从自己镜像启动容器
docker run -it -p 8080:80 centos-nginx:1.16.1 nginx

测试:

技术分享图片

3.2:手动制作编译版本 nginx 1.16.1 镜像

过程为在 centos 基础镜像之上手动编译安装 nginx,然后再提交为镜像。 

下载镜像并初始化系统

基于正在运行的容器
 yum install -y vim wget tree  lrzsz gcc gccc++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop  #安装基础包 
cd /usr/local/src/ 
wget http://nginx.org/download/nginx-1.16.1.tar.gz 
tar xvf nginx-1.16.1.tar.gz 
cd nginx-1.16.1 
./configure  --prefix=/apps/nginx 
make && make install 
在宿主机提交为镜像
docker commit -a "loufangyi 895320177@qq.com" -m "make-nginx 1.16.1" c1fcfd739c16 centos-nginx:v1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos-nginx        v1                  afe839689cf2        54 seconds ago      452MB
从自己的镜像启动容器:
docker run -it -p 8008:80 centos-nginx:v1 /apps/nginx/sbin/nginx "-g daemon off"

技术分享图片

3.3:DockerFile 制作编译版 nginx 1.16.1 镜像

首先在宿主机

创建并进入到指定的 Dockerfile目录
root@ubuntu:/opt/dockerfile# ll
total 1296
drwxr-xr-x 5 root root    4096 Feb 18 21:27 ./
drwxr-xr-x 4 root root    4096 Feb 18 20:30 ../
-rw-r--r-- 1 root root     623 Feb 18 21:27 Dockerfile  #生成的镜像的时候会在执行命 令的当前目录查找 Dockerfile 文件,所以名称不可写错,而且 D 必须大写 
-rw-r--r-- 1 root root 1032630 Aug 14  2019 nginx-1.16.1.tar.gz
drwxr-xr-x 2 root root    4096 Feb 18 21:14 picture/
-rw-r--r-- 1 root root  262535 Feb 18 21:18 picture.zip
drwxr-xr-x 5 root root    4096 Feb 18 20:30 system/
drwxr-xr-x 6 root root    4096 Feb 18 20:30 web/

编写 Dockerfile

#"#"为注释,等于 shell 脚本的中#
FROM centos:7.7.1908 #第一行先定义基础镜像,后面的本地有效的镜像名,如果本地没有会从远程仓库下载,第一行很重要 #MAINTAINER fangyilou 123456@qq.com LABEL maintainer="loufangyi <123456@qq.com>" #镜像维护者的信息 ENV password 123456 #设置容器变量,常用于想容器内传递用户密码 RUN yum install -y epel-release && yum install -y vim wget unzip gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop #执行的命令 ADD nginx-1.16.1.tar.gz /usr/local/src #ADD自动解压压缩包 RUN cd /usr/local/src/nginx-1.16.1 && ./configure --prefix=/apps/nginx && make && make install && rm -rf nginx-1.16.1 ADD picture.zip /apps/nginx/html RUN cd /apps/nginx/html && unzip picture.zip && rm -rf picture.zip EXPOSE 80 443 CMD ["/apps/nginx/sbin/nginx", "-g", "daemon off;"] #运行的命令,每个 Dockerfile 只能有一条, 如果有多条则只有最后一条被执行 

执行镜像构建: 

root@ubuntu:/opt/dockerfile# docker build -t nginx:v3 .

查看是否生成本地镜像: 

root@ubuntu:/opt/dockerfile# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               v3                  91f34176bd3d        42 minutes ago      514MB

从镜像启动容器:

ot@ubuntu:/opt/dockerfile# docker run -it -p 8888:80 nginx:v3

测试:

技术分享图片

 

docker-镜像制作

原文:https://www.cnblogs.com/lummg-DAY/p/12327426.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!