首页 Docker教程docker-制作镜像

Docker-镜像介绍

docker实战-制作nginx镜像

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

通过容器手动制作docker镜像

Docker 镜像制作类似于虚拟机的镜像(模版)制作,即按照公司的实际业务务求将需要安装的软件、相关配置等基础环境配置完成,然后将其做成镜像,最后再批量从镜像批量生产实例,这样可以极大的简化相同环境的部署工作,Docker的镜像制作分为手动制作(基于容器)和自动制作(基于DockerFile),企业通常都是基于Dockerfile制作镜像

基于容器手动制作镜像步骤

基于容器手动制作镜像步骤具体如下:

1.下载一个基础的官方镜像,如:centos 或ubuntu

2.基于基础镜像启动一个容器,并进入到容器

3.在容器里面做配置操作

-安装基础命令

-配置运行环境

-安装服务和配置服务

-放程序代码

  1. 提交为一个新镜像 docker commit
  2. 基于自己的的镜像创建容器并测试访问
实战案例:在容器中利用yum安装手动制作nginx的镜像
下载基础镜像并初始化系统

基于某个基础镜像之上重新制作,因此需要先有一个基础镜像,本次使用官方提供的centos镜像为基础

[root@ubuntu1804 ~]#docker pull centos:centos7.7.1908
[root@ubuntu1804 ~]#docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos7.7.1908      08d05d1d5859        2 months ago        204MB
[root@ubuntu1804 ~]#docker run -it centos:centos7.7.1908 bash

#修改时区
[root@9caa8742e6ce /]#rm -f /etc/localtime
[root@9caa8742e6ce /]#ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@9caa8742e6ce /]# yum -y install wget 
[root@9caa8742e6ce /]# rm -rf /etc/yum.repos.d/*

#更改yum 源
[root@9caa8742e6ce /]# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-7.repo
[root@9caa8742e6ce /]# wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
安装相关软件和工具
#yum安装nginx
[root@9caa8742e6ce /]# yum install nginx –y 
#安装常用命令
[root@9caa8742e6ce /]# yum install -y vim curl iproute net-tools 
修改服务的配置信息关闭服务后台运行
#关闭nginx后台运行
[root@9caa8742e6ce /]# vim /etc/nginx/nginx.conf 
user nginx;
daemon off; #关闭后台运行
准备程序和数据
#自定义web界面
[root@9caa8742e6ce ~]# rm -f /usr/share/nginx/html/index.html
[root@9caa8742e6ce ~]# echo "test page in docker" > /usr/share/nginx/html/index.html
提交为镜像

docker commit 命令在宿主机基于容器ID 提交为镜像

格式:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
选项:
-a, --author string  Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
-c, --change list   Apply Dockerfile instruction to the created image
-m, --message string  Commit message
-p, --pause     Pause container during commit (default true)

提交的时候标记tag号:生产当中常用,后期可以根据tag标记创建不同版本的镜像以及创建不同版本的容器。

#不关闭容器的情况,将容器提交为镜像
[root@ubuntu1804 ~]#docker commit -a "root@wangxiaochun.com" -m "nginx yum v1" -c "EXPOSE 80 443" 9caa8742e6ce wang/centos7-nginx:1.16.1.v1
sha256:e9d09cc585ed8ee1544b1e68de326ea6dcbe99577fc9b2edad9ab481b7a7e7ec
[root@ubuntu1804 ~]#docker images 
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
wang/centos7-nginx   1.16.1.v1           e9d09cc585ed        4 seconds ago       442MB
centos               centos7.7.1908      08d05d1d5859        2 months ago        204MB
从制作的镜像启动容器
[root@ubuntu1804 ~]#docker run -d -p 8080:80 --name my-centos-nginx wang/centos7-nginx:1.16.1.v1 /usr/sbin/nginx 
c60f8373a14210bb3aa06ce03c2258a4b912033b0650ef690f9245fc3afc5bf1

[root@ubuntu1804 ~]#docker ps 
CONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS                           NAMES
c60f8373a142        wang/centos7-nginx:1.16.1.v1   "/usr/sbin/nginx"   6 seconds ago       Up 5 seconds        443/tcp, 0.0.0.0:8080->80/tcp   my-centos-nginx
9caa8742e6ce        centos:centos7.7.1908          "bash"              35 minutes ago      Up 35 minutes                                       thirsty_hypatia
[root@ubuntu1804 ~]#
访问测试镜像
[root@ubuntu1804 ~]#curl 127.0.0.1:8080
test page in docker
[root@ubuntu1804 ~]#

本文链接:http://www.yunweipai.com/34818.html

Docker-镜像介绍

docker实战-制作nginx镜像

网友评论comments

发表评论

邮箱地址不会被公开。

暂无评论

Copyright © 2012-2021 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部