一、Docker镜像说明二、基于容器通过 docker commit 手动制作镜像1、基于容器手动制作镜像步骤

1、下载官方系统镜像

2、基于官方基础镜像启动容器,并进入容器

3、在容器中进行配置操作

  3.1、安装基础工具

  3.2、配置运行环境

  3.3、安装并配置服务

  3.4、存放业务程序代码

4、docker commit 提交生成新镜像

5、基于定制镜像生成容器并测试

2、基于centos7官方镜像,手动制作yum安装nginx定制镜像2.1、下载centos7官方镜像,并启动进入容器

centos官方镜像:https://hub.docker.com/_/centos/tags

[root@Docker-Ubu1804-p11:~]# docker pull centos:77: Pulling from library/centos2d473b07cdd5: Pull complete Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987Status: Downloaded newer image for centos:7docker.io/library/centos:7[root@Docker-Ubu1804-p11:~]# docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEalpine              latest              c059bfaa849c        17 months ago       5.59MBhello-world         latest              feb5d9fea6a5        19 months ago       13.3kBcentos              7                   eeb6ee3f44bd        19 months ago       204MB[root@Docker-Ubu1804-p11:~]# docker run -d --name centos-nginx centos:7 tail -f /etc/hosts502a7a7faae8b7a3c3fa177baec1009d1bc9caabb8b782f887767b35e16ecb8a[root@Docker-Ubu1804-p11:~]# docker psCONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES502a7a7faae8        centos:7            "tail -f /etc/hosts"   8 seconds ago       Up 7 seconds                            centos-nginx[root@Docker-Ubu1804-p11:~]# docker exec -it centos-nginx bash[root@502a7a7faae8 /]# 

2.2、在容器内安装基础工具,并配置环境

##配置容器内 yum[root@502a7a7faae8 /]# rm -rf /etc/yum.repos.d/*[root@502a7a7faae8 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed100  2523  100  2523    0     0  28084      0 --:--:-- --:--:-- --:--:-- 28348[root@502a7a7faae8 /]# ls /etc/yum.repos.d/CentOS-Base.repo[root@502a7a7faae8 /]# yum clean allLoaded plugins: fastestmirror, ovlCleaning repos: base extras updates[root@502a7a7faae8 /]# yum makecache fastLoaded plugins: fastestmirror, ovlDetermining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.combase                                                                                                                     | 3.6 kB  00:00:00     extras                                                                                                                   | 2.9 kB  00:00:00     updates                                                                                                                  | 2.9 kB  00:00:00     (1/4): base/7/x86_64/group_gz                                                                                            | 153 kB  00:00:00     (2/4): extras/7/x86_64/primary_db                                                                                        | 249 kB  00:00:00     (3/4): updates/7/x86_64/primary_db                                                                                       |  20 MB  00:00:08     base/7/x86_64/primary_db       FAILED                                          http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"Trying other mirror.(4/4): base/7/x86_64/primary_db                                                                                          | 6.1 MB  00:00:01     Metadata Cache Created##yum安装常用基础工具[root@502a7a7faae8 /]# yum install -y psmisc tree wget vim net-tools bash-completionLoaded plugins: fastestmirror, ovlLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comResolving Dependencies--> Running transaction check---> Package bash-completion.noarch 1:2.1-8.el7 will be installed---> Package net-tools.x86_64 0:2.0-0.25.20131004git.el7 will be installed---> Package psmisc.x86_64 0:22.20-17.el7 will be installed---> Package tree.x86_64 0:1.6.0-10.el7 will be installed---> Package vim-enhanced.x86_64 2:7.4.629-8.el7_9 will be installed--> Processing Dependency: vim-common = 2:7.4.629-8.el7_9 for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64--> Processing Dependency: which for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64--> Processing Dependency: libgpm.so.2()(64bit) for package: 2:vim-enhanced-7.4.629-8.el7_9.x86_64---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed--> Running transaction check---> Package gpm-libs.x86_64 0:1.20.7-6.el7 will be installed---> Package perl.x86_64 4:5.16.3-299.el7_9 will be installed--> Processing Dependency: perl(Socket) >= 1.3 for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Scalar::Util) >= 1.10 for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl-macros for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(threads::shared) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(threads) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(constant) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Time::Local) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Time::HiRes) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Storable) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Socket) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Scalar::Util) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Pod::Simple::XHTML) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Pod::Simple::Search) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Getopt::Long) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Filter::Util::Call) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(File::Temp) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(File::Spec::Unix) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(File::Spec::Functions) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(File::Spec) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(File::Path) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Exporter) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Cwd) for package: 4:perl-5.16.3-299.el7_9.x86_64--> Processing Dependency: perl(Carp) for package: 4:perl-5.16.3-299.el7_9.x86_64---> Package perl-libs.x86_64 4:5.16.3-299.el7_9 will be installed---> Package vim-common.x86_64 2:7.4.629-8.el7_9 will be installed--> Processing Dependency: vim-filesystem for package: 2:vim-common-7.4.629-8.el7_9.x86_64---> Package which.x86_64 0:2.20-7.el7 will be installed--> Running transaction check---> Package perl-Carp.noarch 0:1.26-244.el7 will be installed---> Package perl-Exporter.noarch 0:5.68-3.el7 will be installed---> Package perl-File-Path.noarch 0:2.09-2.el7 will be installed---> Package perl-File-Temp.noarch 0:0.23.01-3.el7 will be installed---> Package perl-Filter.x86_64 0:1.49-3.el7 will be installed---> Package perl-Getopt-Long.noarch 0:2.40-3.el7 will be installed--> Processing Dependency: perl(Pod::Usage) >= 1.14 for package: perl-Getopt-Long-2.40-3.el7.noarch--> Processing Dependency: perl(Text::ParseWords) for package: perl-Getopt-Long-2.40-3.el7.noarch---> Package perl-PathTools.x86_64 0:3.40-5.el7 will be installed---> Package perl-Pod-Simple.noarch 1:3.28-4.el7 will be installed--> Processing Dependency: perl(Pod::Escapes) >= 1.04 for package: 1:perl-Pod-Simple-3.28-4.el7.noarch--> Processing Dependency: perl(Encode) for package: 1:perl-Pod-Simple-3.28-4.el7.noarch---> Package perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 will be installed---> Package perl-Socket.x86_64 0:2.010-5.el7 will be installed---> Package perl-Storable.x86_64 0:2.45-3.el7 will be installed---> Package perl-Time-HiRes.x86_64 4:1.9725-3.el7 will be installed---> Package perl-Time-Local.noarch 0:1.2300-2.el7 will be installed---> Package perl-constant.noarch 0:1.27-2.el7 will be installed---> Package perl-macros.x86_64 4:5.16.3-299.el7_9 will be installed---> Package perl-threads.x86_64 0:1.87-4.el7 will be installed---> Package perl-threads-shared.x86_64 0:1.43-6.el7 will be installed---> Package vim-filesystem.x86_64 2:7.4.629-8.el7_9 will be installed--> Running transaction check---> Package perl-Encode.x86_64 0:2.51-7.el7 will be installed---> Package perl-Pod-Escapes.noarch 1:1.04-299.el7_9 will be installed---> Package perl-Pod-Usage.noarch 0:1.63-3.el7 will be installed--> Processing Dependency: perl(Pod::Text) >= 3.15 for package: perl-Pod-Usage-1.63-3.el7.noarch--> Processing Dependency: perl-Pod-Perldoc for package: perl-Pod-Usage-1.63-3.el7.noarch---> Package perl-Text-ParseWords.noarch 0:3.29-4.el7 will be installed--> Running transaction check---> Package perl-Pod-Perldoc.noarch 0:3.20-4.el7 will be installed--> Processing Dependency: perl(parent) for package: perl-Pod-Perldoc-3.20-4.el7.noarch--> Processing Dependency: perl(HTTP::Tiny) for package: perl-Pod-Perldoc-3.20-4.el7.noarch--> Processing Dependency: groff-base for package: perl-Pod-Perldoc-3.20-4.el7.noarch---> Package perl-podlators.noarch 0:2.5.1-3.el7 will be installed--> Running transaction check---> Package groff-base.x86_64 0:1.22.2-8.el7 will be installed---> Package perl-HTTP-Tiny.noarch 0:0.033-3.el7 will be installed---> Package perl-parent.noarch 1:0.225-244.el7 will be installed--> Finished Dependency ResolutionDependencies Resolved================================================================================================================================================ Package                                  Arch                     Version                                      Repository                 Size================================================================================================================================================Installing: bash-completion                          noarch                   1:2.1-8.el7                                  base                       87 k net-tools                                x86_64                   2.0-0.25.20131004git.el7                     base                      306 k psmisc                                   x86_64                   22.20-17.el7                                 base                      141 k tree                                     x86_64                   1.6.0-10.el7                                 base                       46 k vim-enhanced                             x86_64                   2:7.4.629-8.el7_9                            updates                   1.1 M wget                                     x86_64                   1.14-18.el7_6.1                              base                      547 kInstalling for dependencies: gpm-libs                                 x86_64                   1.20.7-6.el7                                 base                       32 k groff-base                               x86_64                   1.22.2-8.el7                                 base                      942 k perl                                     x86_64                   4:5.16.3-299.el7_9                           updates                   8.0 M perl-Carp                                noarch                   1.26-244.el7                                 base                       19 k perl-Encode                              x86_64                   2.51-7.el7                                   base                      1.5 M perl-Exporter                            noarch                   5.68-3.el7                                   base                       28 k perl-File-Path                           noarch                   2.09-2.el7                                   base                       26 k perl-File-Temp                           noarch                   0.23.01-3.el7                                base                       56 k perl-Filter                              x86_64                   1.49-3.el7                                   base                       76 k perl-Getopt-Long                         noarch                   2.40-3.el7                                   base                       56 k perl-HTTP-Tiny                           noarch                   0.033-3.el7                                  base                       38 k perl-PathTools                           x86_64                   3.40-5.el7                                   base                       82 k perl-Pod-Escapes                         noarch                   1:1.04-299.el7_9                             updates                    52 k perl-Pod-Perldoc                         noarch                   3.20-4.el7                                   base                       87 k perl-Pod-Simple                          noarch                   1:3.28-4.el7                                 base                      216 k perl-Pod-Usage                           noarch                   1.63-3.el7                                   base                       27 k perl-Scalar-List-Utils                   x86_64                   1.27-248.el7                                 base                       36 k perl-Socket                              x86_64                   2.010-5.el7                                  base                       49 k perl-Storable                            x86_64                   2.45-3.el7                                   base                       77 k perl-Text-ParseWords                     noarch                   3.29-4.el7                                   base                       14 k perl-Time-HiRes                          x86_64                   4:1.9725-3.el7                               base                       45 k perl-Time-Local                          noarch                   1.2300-2.el7                                 base                       24 k perl-constant                            noarch                   1.27-2.el7                                   base                       19 k perl-libs                                x86_64                   4:5.16.3-299.el7_9                           updates                   690 k perl-macros                              x86_64                   4:5.16.3-299.el7_9                           updates                    44 k perl-parent                              noarch                   1:0.225-244.el7                              base                       12 k perl-podlators                           noarch                   2.5.1-3.el7                                  base                      112 k perl-threads                             x86_64                   1.87-4.el7                                   base                       49 k perl-threads-shared                      x86_64                   1.43-6.el7                                   base                       39 k vim-common                               x86_64                   2:7.4.629-8.el7_9                            updates                   5.9 M vim-filesystem                           x86_64                   2:7.4.629-8.el7_9                            updates                    11 k which                                    x86_64                   2.20-7.el7                                   base                       41 kTransaction Summary================================================================================================================================================Install  6 Packages (+32 Dependent packages)Total download size: 20 MInstalled size: 67 MDownloading packages:groff-base-1.22.2-8.el7.x86_64 FAILED                                          http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/Packages/groff-base-1.22.2-8.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"Trying other mirror.warning: /var/cache/yum/x86_64/7/base/packages/gpm-libs-1.20.7-6.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY-:-- ETA Public key for gpm-libs-1.20.7-6.el7.x86_64.rpm is not installed(1/38): gpm-libs-1.20.7-6.el7.x86_64.rpm                                                                                 |  32 kB  00:00:00     (2/38): bash-completion-2.1-8.el7.noarch.rpm                                                                             |  87 kB  00:00:00     (3/38): net-tools-2.0-0.25.20131004git.el7.x86_64.rpm                                                                    | 306 kB  00:00:00     (4/38): perl-Carp-1.26-244.el7.noarch.rpm                                                                                |  19 kB  00:00:00     (5/38): perl-Exporter-5.68-3.el7.noarch.rpm                                                                              |  28 kB  00:00:00     (6/38): perl-File-Path-2.09-2.el7.noarch.rpm                                                                             |  26 kB  00:00:00     (7/38): perl-File-Temp-0.23.01-3.el7.noarch.rpm                                                                          |  56 kB  00:00:00     (8/38): perl-Encode-2.51-7.el7.x86_64.rpm                                                                                | 1.5 MB  00:00:00     (9/38): perl-Filter-1.49-3.el7.x86_64.rpm                                                                                |  76 kB  00:00:00     (10/38): perl-HTTP-Tiny-0.033-3.el7.noarch.rpm                                                                           |  38 kB  00:00:00     (11/38): perl-Getopt-Long-2.40-3.el7.noarch.rpm                                                                          |  56 kB  00:00:00     (12/38): perl-Pod-Perldoc-3.20-4.el7.noarch.rpm                                                                          |  87 kB  00:00:00     (13/38): perl-Pod-Simple-3.28-4.el7.noarch.rpm                                                                           | 216 kB  00:00:00     (14/38): perl-PathTools-3.40-5.el7.x86_64.rpm                                                                            |  82 kB  00:00:00     (15/38): perl-Pod-Usage-1.63-3.el7.noarch.rpm                                                                            |  27 kB  00:00:00     (16/38): perl-Scalar-List-Utils-1.27-248.el7.x86_64.rpm                                                                  |  36 kB  00:00:00     Public key for perl-5.16.3-299.el7_9.x86_64.rpm is not installed(17/38): perl-5.16.3-299.el7_9.x86_64.rpm                                                                                | 8.0 MB  00:00:01     (18/38): perl-Pod-Escapes-1.04-299.el7_9.noarch.rpm                                                                      |  52 kB  00:00:00     (19/38): perl-Socket-2.010-5.el7.x86_64.rpm                                                                              |  49 kB  00:00:00     (20/38): perl-Storable-2.45-3.el7.x86_64.rpm                                                                             |  77 kB  00:00:00     (21/38): perl-Time-HiRes-1.9725-3.el7.x86_64.rpm                                                                         |  45 kB  00:00:00     (22/38): perl-Text-ParseWords-3.29-4.el7.noarch.rpm                                                                      |  14 kB  00:00:00     (23/38): perl-Time-Local-1.2300-2.el7.noarch.rpm                                                                         |  24 kB  00:00:00     (24/38): perl-constant-1.27-2.el7.noarch.rpm                                                                             |  19 kB  00:00:00     (25/38): perl-podlators-2.5.1-3.el7.noarch.rpm                                                                           | 112 kB  00:00:00     (26/38): perl-parent-0.225-244.el7.noarch.rpm                                                                            |  12 kB  00:00:00     (27/38): perl-threads-shared-1.43-6.el7.x86_64.rpm                                                                       |  39 kB  00:00:00     (28/38): perl-macros-5.16.3-299.el7_9.x86_64.rpm                                                                         |  44 kB  00:00:00     (29/38): psmisc-22.20-17.el7.x86_64.rpm                                                                                  | 141 kB  00:00:00     (30/38): perl-libs-5.16.3-299.el7_9.x86_64.rpm                                                                           | 690 kB  00:00:00     (31/38): perl-threads-1.87-4.el7.x86_64.rpm                                                                              |  49 kB  00:00:00     (32/38): tree-1.6.0-10.el7.x86_64.rpm                                                                                    |  46 kB  00:00:00     (33/38): vim-enhanced-7.4.629-8.el7_9.x86_64.rpm                                                                         | 1.1 MB  00:00:00     (34/38): vim-filesystem-7.4.629-8.el7_9.x86_64.rpm                                                                       |  11 kB  00:00:00     (35/38): which-2.20-7.el7.x86_64.rpm                                                                                     |  41 kB  00:00:00     (36/38): wget-1.14-18.el7_6.1.x86_64.rpm                                                                                 | 547 kB  00:00:00     (37/38): vim-common-7.4.629-8.el7_9.x86_64.rpm                                                                           | 5.9 MB  00:00:00     (38/38): groff-base-1.22.2-8.el7.x86_64.rpm                                                                              | 942 kB  00:00:00     ------------------------------------------------------------------------------------------------------------------------------------------------Total                                                                                                           7.0 MB/s |  20 MB  00:00:02     Retrieving key from http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7Importing GPG key 0xF4A80EB5: Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) " Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 From       : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7Running transaction checkRunning transaction testTransaction test succeededRunning transaction  Installing : gpm-libs-1.20.7-6.el7.x86_64                                                                                                1/38   Installing : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                                                                                     2/38   Installing : 2:vim-common-7.4.629-8.el7_9.x86_64                                                                                         3/38   Installing : which-2.20-7.el7.x86_64                                                                                                     4/38 install-info: No such file or directory for /usr/share/info/which.info.gz  Installing : groff-base-1.22.2-8.el7.x86_64                                                                                              5/38   Installing : 1:perl-parent-0.225-244.el7.noarch                                                                                          6/38   Installing : perl-HTTP-Tiny-0.033-3.el7.noarch                                                                                           7/38   Installing : perl-podlators-2.5.1-3.el7.noarch                                                                                           8/38   Installing : perl-Pod-Perldoc-3.20-4.el7.noarch                                                                                          9/38   Installing : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                                                                                   10/38   Installing : perl-Encode-2.51-7.el7.x86_64                                                                                              11/38   Installing : perl-Text-ParseWords-3.29-4.el7.noarch                                                                                     12/38   Installing : perl-Pod-Usage-1.63-3.el7.noarch                                                                                           13/38   Installing : 4:perl-macros-5.16.3-299.el7_9.x86_64                                                                                      14/38   Installing : perl-Storable-2.45-3.el7.x86_64                                                                                            15/38   Installing : perl-Exporter-5.68-3.el7.noarch                                                                                            16/38   Installing : perl-constant-1.27-2.el7.noarch                                                                                            17/38   Installing : perl-Socket-2.010-5.el7.x86_64                                                                                             18/38   Installing : perl-Time-Local-1.2300-2.el7.noarch                                                                                        19/38   Installing : perl-Carp-1.26-244.el7.noarch                                                                                              20/38   Installing : perl-PathTools-3.40-5.el7.x86_64                                                                                           21/38   Installing : perl-Scalar-List-Utils-1.27-248.el7.x86_64                                                                                 22/38   Installing : 1:perl-Pod-Simple-3.28-4.el7.noarch                                                                                        23/38   Installing : perl-File-Temp-0.23.01-3.el7.noarch                                                                                        24/38   Installing : perl-File-Path-2.09-2.el7.noarch                                                                                           25/38   Installing : perl-threads-shared-1.43-6.el7.x86_64                                                                                      26/38   Installing : perl-threads-1.87-4.el7.x86_64                                                                                             27/38   Installing : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                                                                                      28/38   Installing : perl-Filter-1.49-3.el7.x86_64                                                                                              29/38   Installing : 4:perl-libs-5.16.3-299.el7_9.x86_64                                                                                        30/38   Installing : perl-Getopt-Long-2.40-3.el7.noarch                                                                                         31/38   Installing : 4:perl-5.16.3-299.el7_9.x86_64                                                                                             32/38   Installing : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                                                                                      33/38   Installing : psmisc-22.20-17.el7.x86_64                                                                                                 34/38   Installing : wget-1.14-18.el7_6.1.x86_64                                                                                                35/38 install-info: No such file or directory for /usr/share/info/wget.info.gz  Installing : 1:bash-completion-2.1-8.el7.noarch                                                                                         36/38   Installing : tree-1.6.0-10.el7.x86_64                                                                                                   37/38   Installing : net-tools-2.0-0.25.20131004git.el7.x86_64                                                                                  38/38   Verifying  : perl-HTTP-Tiny-0.033-3.el7.noarch                                                                                           1/38   Verifying  : perl-threads-shared-1.43-6.el7.x86_64                                                                                       2/38   Verifying  : perl-Storable-2.45-3.el7.x86_64                                                                                             3/38   Verifying  : groff-base-1.22.2-8.el7.x86_64                                                                                              4/38   Verifying  : perl-Exporter-5.68-3.el7.noarch                                                                                             5/38   Verifying  : perl-constant-1.27-2.el7.noarch                                                                                             6/38   Verifying  : 2:vim-enhanced-7.4.629-8.el7_9.x86_64                                                                                       7/38   Verifying  : 4:perl-macros-5.16.3-299.el7_9.x86_64                                                                                       8/38   Verifying  : perl-PathTools-3.40-5.el7.x86_64                                                                                            9/38   Verifying  : 1:perl-parent-0.225-244.el7.noarch                                                                                         10/38   Verifying  : perl-Socket-2.010-5.el7.x86_64                                                                                             11/38   Verifying  : which-2.20-7.el7.x86_64                                                                                                    12/38   Verifying  : 2:vim-filesystem-7.4.629-8.el7_9.x86_64                                                                                    13/38   Verifying  : perl-File-Temp-0.23.01-3.el7.noarch                                                                                        14/38   Verifying  : net-tools-2.0-0.25.20131004git.el7.x86_64                                                                                  15/38   Verifying  : 1:perl-Pod-Simple-3.28-4.el7.noarch                                                                                        16/38   Verifying  : tree-1.6.0-10.el7.x86_64                                                                                                   17/38   Verifying  : perl-Time-Local-1.2300-2.el7.noarch                                                                                        18/38   Verifying  : 1:perl-Pod-Escapes-1.04-299.el7_9.noarch                                                                                   19/38   Verifying  : perl-Carp-1.26-244.el7.noarch                                                                                              20/38   Verifying  : 1:bash-completion-2.1-8.el7.noarch                                                                                         21/38   Verifying  : 2:vim-common-7.4.629-8.el7_9.x86_64                                                                                        22/38   Verifying  : perl-Scalar-List-Utils-1.27-248.el7.x86_64                                                                                 23/38   Verifying  : perl-Pod-Usage-1.63-3.el7.noarch                                                                                           24/38   Verifying  : perl-Encode-2.51-7.el7.x86_64                                                                                              25/38   Verifying  : perl-Pod-Perldoc-3.20-4.el7.noarch                                                                                         26/38   Verifying  : perl-podlators-2.5.1-3.el7.noarch                                                                                          27/38   Verifying  : 4:perl-5.16.3-299.el7_9.x86_64                                                                                             28/38   Verifying  : perl-File-Path-2.09-2.el7.noarch                                                                                           29/38   Verifying  : perl-threads-1.87-4.el7.x86_64                                                                                             30/38   Verifying  : 4:perl-Time-HiRes-1.9725-3.el7.x86_64                                                                                      31/38   Verifying  : gpm-libs-1.20.7-6.el7.x86_64                                                                                               32/38   Verifying  : perl-Filter-1.49-3.el7.x86_64                                                                                              33/38   Verifying  : perl-Getopt-Long-2.40-3.el7.noarch                                                                                         34/38   Verifying  : perl-Text-ParseWords-3.29-4.el7.noarch                                                                                     35/38   Verifying  : wget-1.14-18.el7_6.1.x86_64                                                                                                36/38   Verifying  : 4:perl-libs-5.16.3-299.el7_9.x86_64                                                                                        37/38   Verifying  : psmisc-22.20-17.el7.x86_64                                                                                                 38/38 Installed:  bash-completion.noarch 1:2.1-8.el7     net-tools.x86_64 0:2.0-0.25.20131004git.el7  psmisc.x86_64 0:22.20-17.el7  tree.x86_64 0:1.6.0-10.el7   vim-enhanced.x86_64 2:7.4.629-8.el7_9  wget.x86_64 0:1.14-18.el7_6.1               Dependency Installed:  gpm-libs.x86_64 0:1.20.7-6.el7                 groff-base.x86_64 0:1.22.2-8.el7                   perl.x86_64 4:5.16.3-299.el7_9               perl-Carp.noarch 0:1.26-244.el7                perl-Encode.x86_64 0:2.51-7.el7                    perl-Exporter.noarch 0:5.68-3.el7            perl-File-Path.noarch 0:2.09-2.el7             perl-File-Temp.noarch 0:0.23.01-3.el7              perl-Filter.x86_64 0:1.49-3.el7              perl-Getopt-Long.noarch 0:2.40-3.el7           perl-HTTP-Tiny.noarch 0:0.033-3.el7                perl-PathTools.x86_64 0:3.40-5.el7           perl-Pod-Escapes.noarch 1:1.04-299.el7_9       perl-Pod-Perldoc.noarch 0:3.20-4.el7               perl-Pod-Simple.noarch 1:3.28-4.el7          perl-Pod-Usage.noarch 0:1.63-3.el7             perl-Scalar-List-Utils.x86_64 0:1.27-248.el7       perl-Socket.x86_64 0:2.010-5.el7             perl-Storable.x86_64 0:2.45-3.el7              perl-Text-ParseWords.noarch 0:3.29-4.el7           perl-Time-HiRes.x86_64 4:1.9725-3.el7        perl-Time-Local.noarch 0:1.2300-2.el7          perl-constant.noarch 0:1.27-2.el7                  perl-libs.x86_64 4:5.16.3-299.el7_9          perl-macros.x86_64 4:5.16.3-299.el7_9          perl-parent.noarch 1:0.225-244.el7                 perl-podlators.noarch 0:2.5.1-3.el7          perl-threads.x86_64 0:1.87-4.el7               perl-threads-shared.x86_64 0:1.43-6.el7            vim-common.x86_64 2:7.4.629-8.el7_9          vim-filesystem.x86_64 2:7.4.629-8.el7_9        which.x86_64 0:2.20-7.el7                         Complete!

2.3、在容器内安装配置nginx,生成业务数据,设置服务前台运行

## 安装epel源[root@502a7a7faae8 /]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo--2023-04-24 14:23:54--  https://mirrors.aliyun.com/repo/epel-7.repoResolving mirrors.aliyun.com (mirrors.aliyun.com)... 120.226.58.184, 120.226.58.182, 120.226.58.185, ...Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|120.226.58.184|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 664 [application/octet-stream]Saving to: '/etc/yum.repos.d/epel.repo'100%[======================================================================================================>] 664         --.-K/s   in 0s      2023-04-24 14:23:54 (124 MB/s) - '/etc/yum.repos.d/epel.repo' saved [664/664][root@502a7a7faae8 /]# yum makecache fastLoaded plugins: fastestmirror, ovlLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.combase                                                                                                                     | 3.6 kB  00:00:00     epel                                                                                                                     | 4.7 kB  00:00:00     extras                                                                                                                   | 2.9 kB  00:00:00     updates                                                                                                                  | 2.9 kB  00:00:00     (1/3): epel/x86_64/group_gz                                                                                              |  99 kB  00:00:00     (2/3): epel/x86_64/updateinfo                                                                                            | 1.0 MB  00:00:00     (3/3): epel/x86_64/primary_db                                                                                            | 7.0 MB  00:00:01     Metadata Cache Created##安装nginx[root@502a7a7faae8 /]# yum install -y nginxLoaded plugins: fastestmirror, ovlLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.comResolving Dependencies--> Running transaction check---> Package nginx.x86_64 1:1.20.1-10.el7 will be installed--> Processing Dependency: nginx-filesystem = 1:1.20.1-10.el7 for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_0)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libssl.so.1.1(OPENSSL_1_1_1)(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: nginx-filesystem for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: openssl for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: redhat-indexhtml for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: system-logos for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libcrypto.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libprofiler.so.0()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Processing Dependency: libssl.so.1.1()(64bit) for package: 1:nginx-1.20.1-10.el7.x86_64--> Running transaction check---> Package centos-indexhtml.noarch 0:7-9.el7.centos will be installed---> Package centos-logos.noarch 0:70.0.6-3.el7.centos will be installed---> Package gperftools-libs.x86_64 0:2.6.1-1.el7 will be installed---> Package nginx-filesystem.noarch 1:1.20.1-10.el7 will be installed---> Package openssl.x86_64 1:1.0.2k-26.el7_9 will be installed--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2k-26.el7_9 for package: 1:openssl-1.0.2k-26.el7_9.x86_64--> Processing Dependency: make for package: 1:openssl-1.0.2k-26.el7_9.x86_64---> Package openssl11-libs.x86_64 1:1.1.1k-5.el7 will be installed--> Running transaction check---> Package make.x86_64 1:3.82-24.el7 will be installed---> Package openssl-libs.x86_64 1:1.0.2k-19.el7 will be updated---> Package openssl-libs.x86_64 1:1.0.2k-26.el7_9 will be an update--> Finished Dependency ResolutionDependencies Resolved================================================================================================================================================ Package                               Arch                        Version                                   Repository                    Size================================================================================================================================================Installing: nginx                                 x86_64                      1:1.20.1-10.el7                           epel                         588 kInstalling for dependencies: centos-indexhtml                      noarch                      7-9.el7.centos                            base                          92 k centos-logos                          noarch                      70.0.6-3.el7.centos                       base                          21 M gperftools-libs                       x86_64                      2.6.1-1.el7                               base                         272 k make                                  x86_64                      1:3.82-24.el7                             base                         421 k nginx-filesystem                      noarch                      1:1.20.1-10.el7                           epel                          24 k openssl                               x86_64                      1:1.0.2k-26.el7_9                         updates                      494 k openssl11-libs                        x86_64                      1:1.1.1k-5.el7                            epel                         1.5 MUpdating for dependencies: openssl-libs                          x86_64                      1:1.0.2k-26.el7_9                         updates                      1.2 MTransaction Summary================================================================================================================================================Install  1 Package  (+7 Dependent packages)Upgrade             ( 1 Dependent package)Total download size: 26 MDownloading packages:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.(1/9): centos-indexhtml-7-9.el7.centos.noarch.rpm                                                                        |  92 kB  00:00:00     (2/9): gperftools-libs-2.6.1-1.el7.x86_64.rpm                                                                            | 272 kB  00:00:00     (3/9): make-3.82-24.el7.x86_64.rpm                                                                                       | 421 kB  00:00:00     (4/9): openssl-libs-1.0.2k-26.el7_9.x86_64.rpm                                                                           | 1.2 MB  00:00:00     (5/9): nginx-filesystem-1.20.1-10.el7.noarch.rpm                                                                         |  24 kB  00:00:00     (6/9): openssl-1.0.2k-26.el7_9.x86_64.rpm                                                                                | 494 kB  00:00:00     (7/9): nginx-1.20.1-10.el7.x86_64.rpm                                                                                    | 588 kB  00:00:00     (8/9): openssl11-libs-1.1.1k-5.el7.x86_64.rpm                                                                            | 1.5 MB  00:00:00     (9/9): centos-logos-70.0.6-3.el7.centos.noarch.rpm                                                                       |  21 MB  00:00:02     ------------------------------------------------------------------------------------------------------------------------------------------------Total                                                                                                            12 MB/s |  26 MB  00:00:02     Running transaction checkRunning transaction testTransaction test succeededRunning transaction  Installing : centos-logos-70.0.6-3.el7.centos.noarch                                                                                     1/10   Installing : centos-indexhtml-7-9.el7.centos.noarch                                                                                      2/10   Installing : 1:make-3.82-24.el7.x86_64                                                                                                   3/10   Installing : 1:openssl11-libs-1.1.1k-5.el7.x86_64                                                                                        4/10   Installing : gperftools-libs-2.6.1-1.el7.x86_64                                                                                          5/10   Installing : 1:nginx-filesystem-1.20.1-10.el7.noarch                                                                                     6/10   Updating   : 1:openssl-libs-1.0.2k-26.el7_9.x86_64                                                                                       7/10   Installing : 1:openssl-1.0.2k-26.el7_9.x86_64                                                                                            8/10   Installing : 1:nginx-1.20.1-10.el7.x86_64                                                                                                9/10   Cleanup    : 1:openssl-libs-1.0.2k-19.el7.x86_64                                                                                        10/10   Verifying  : 1:openssl-libs-1.0.2k-26.el7_9.x86_64                                                                                       1/10   Verifying  : 1:nginx-filesystem-1.20.1-10.el7.noarch                                                                                     2/10   Verifying  : gperftools-libs-2.6.1-1.el7.x86_64                                                                                          3/10   Verifying  : 1:openssl11-libs-1.1.1k-5.el7.x86_64                                                                                        4/10   Verifying  : 1:nginx-1.20.1-10.el7.x86_64                                                                                                5/10   Verifying  : 1:make-3.82-24.el7.x86_64                                                                                                   6/10   Verifying  : centos-indexhtml-7-9.el7.centos.noarch                                                                                      7/10   Verifying  : 1:openssl-1.0.2k-26.el7_9.x86_64                                                                                            8/10   Verifying  : centos-logos-70.0.6-3.el7.centos.noarch                                                                                     9/10   Verifying  : 1:openssl-libs-1.0.2k-19.el7.x86_64                                                                                        10/10 Installed:  nginx.x86_64 1:1.20.1-10.el7                                                                                                                  Dependency Installed:  centos-indexhtml.noarch 0:7-9.el7.centos        centos-logos.noarch 0:70.0.6-3.el7.centos        gperftools-libs.x86_64 0:2.6.1-1.el7         make.x86_64 1:3.82-24.el7                       nginx-filesystem.noarch 1:1.20.1-10.el7          openssl.x86_64 1:1.0.2k-26.el7_9             openssl11-libs.x86_64 1:1.1.1k-5.el7           Dependency Updated:  openssl-libs.x86_64 1:1.0.2k-26.el7_9                                                                                                         Complete!##创建业务数据[root@502a7a7faae8 /]# nginx -vnginx version: nginx/1.20.1[root@502a7a7faae8 /]# cat /etc/nginx/nginx.conf | grep root        root         /usr/share/nginx/html;#        root         /usr/share/nginx/html;[root@502a7a7faae8 /]# ll /usr/share/nginx/html/index.html lrwxrwxrwx 1 root root 25 Apr 24 14:24 /usr/share/nginx/html/index.html -> ../../doc/HTML/index.html[root@502a7a7faae8 /]# echo "nginix-1.20.1 on in docker" > /usr/share/doc/HTML/index.htmlbash: /usr/share/doc/HTML/index.html: No such file or directory[root@502a7a7faae8 /]# mkdir -p /usr/share/doc/HTML/[root@502a7a7faae8 /]# echo "nginix-1.20.1 on in docker" > /usr/share/doc/HTML/index.html[root@502a7a7faae8 /]# ##启动nginx服务,验证服务正常启动[root@502a7a7faae8 /]# nginx[root@502a7a7faae8 /]# netstat -ntlActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State      tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     tcp6       0      0 :::80                   :::*                    LISTEN     [root@502a7a7faae8 /]# hostname -i172.17.0.2[root@502a7a7faae8 /]# curl 172.17.0.2nginix-1.20.1 on in docker##修改nginx服务配置daemon off;,设置服务前台运行[root@502a7a7faae8 /]# vim /etc/nginx/nginx.conf[root@502a7a7faae8 /]# cat /etc/nginx/nginx.conf | grep daemondaemon off;[root@502a7a7faae8 /]# nginx

2.4、提交生成镜像

## 提交生成镜像:
# 作者 janzen.com
# 描述 Base centos7 yum install nginx-1.20.1 v1.0
# 暴露端口 80 443
# 引用容器 502a7a7faae8
# 生成镜像名称 janzen/nginx-centos7
# 镜像版本 1.20.1-v1.0

[root@Docker-Ubu1804-p11:~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES502a7a7faae8 centos:7 "tail -f /etc/hosts" About an hour ago Up About an hour centos-nginx[root@Docker-Ubu1804-p11:~]# docker commit -a "janzen.com" -m "Base centos7 yum install nginx-1.20.1 v1.0" -c "EXPOSE 80 443" 502a7a7faae8 janzen/nginx-centos7:1.20.1-v1.0sha256:fd0513c9ae5e01e5be7122c7df7a1eb81a9ebce14a4752552cdd47b3be70f821[root@Docker-Ubu1804-p11:~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZEjanzen/nginx-centos7 1.20.1-v1.0 fd0513c9ae5e 12 seconds ago 559MBalpine latest c059bfaa849c 17 months ago 5.59MBhello-world latest feb5d9fea6a5 19 months ago 13.3kBcentos 7 eeb6ee3f44bd 19 months ago 204MB

2.5、基于生成的镜像,启动容器

[root@Docker-Ubu1804-p11:~]# docker run -d -p 80:80 --name nginx_v1.0 janzen/nginx-centos7:1.20.1-v1.0 nginx571850aae7dfdfcdd24ddff07e9e98c3da1ceed03e0c89b9bc6bb66caa184ce5[root@Docker-Ubu1804-p11:~]# docker psCONTAINER ID        IMAGE                              COMMAND             CREATED             STATUS              PORTS                         NAMES571850aae7df        janzen/nginx-centos7:1.20.1-v1.0   "nginx"             5 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 443/tcp   nginx_v1.0

2.6、测试容器访问

[root@Docker-CentOS8-12 ~]# curl 10.0.0.11nginix-1.20.1 on in docker[root@Docker-CentOS8-12 ~]# 

三、利用 Dockerfile 文件执行 docker build 自动构建镜像1、Dockerfile 介绍

Dockerfile 文件是一种由 Docker程序解释执行的文本文件,文件内容由一条条的Dockerfile指令构成,每条指令将通过Docker程序解释为对应为相应的Linux命令,Docker程序通过这些指令执行生成Docker镜像,相比于手动创建的镜像,Dockerfile更加直观地展示每一个镜像创建的过程。有了Dockerfile 后期在原有镜像上出现新的需求时,可以直接通过修改Dockerfile内容进行调整,并生成新的镜像,避免重复手动制作镜像的过程,实现类似于shell格式脚本。

2、Dockerfile 镜像制作和使用流程

3、Dockerfile 文件制作镜像的分层结构

#根据不同的镜像层级进行目录创建,便于后期管理镜像
[root@Docker-Ubu1804-p11:~]# mkdir -p /images/{system/{centos,ubuntu,alpine},webserver/{nginx,apache,tomcat},dev/python,database/{mysql,redis,mongdb}}[root@Docker-Ubu1804-p11:~]# tree /images//images/├── database│ ├── mongdb│ ├── mysql│ └── redis├── dev│ └── python├── system│ ├── alpine│ ├── centos│ └── ubuntu└── webserver ├── apache ├── nginx └── tomcat14 directories, 0 files[root@Docker-Ubu1804-p11:~]#

4、Dockerfile 文件格式

Dockerfile 是一种有特定语法格式的文本文件

官方文档:https://docs.docker.com/engine/reference/builder/

Dockerfile文件说明

  每一行都以Dockerfile指令开头,指令不区分大小写格式,通常采用 全大写格式

  使用 # 作为注释

  每一行仅允许一条指令,但是可以携带多个参数

  指令按照文件内容从上至下顺序执行

  每一条指令执行都将生成一个新的镜像层,为了减少层和镜像大小,尽可能多的将多条指令合并为一条执行

  每一条指令都是独立运行的,不会相互影响。例如:RUN cd /tmp 的结果不会对下一行 RUN echo > file 产生影响,file还是会被创建在工作目录下,而不是 /tmp 目录下

  每次执行Dockerfile都将按照顺序执行,从头开始,执行过的指令将会生成缓存,再下次进行制作镜像时无需执行。但是如果其中一行内容发生变化,变化行之后的全部命令缓存将会被清空,重新执行,因此通常应该尽可能将变化性大的指令置于最后执行。

5、Dockerfile 命令

#Dockerfile 常用命令FROMLABELENVADDCOPYRUNCMDENTRYPOINT

Dockerfile构建过程

1、从基础镜像运行一个容器

2、执行对应的指令对容器做出修改

3、执行类似docker commit 操作,提交一个新的中间层镜像(可以利用中间层镜像创建容器进行调试与排错)

4、再基于上一步生成的中间层镜像运行一个容器

5、执行下一条指令对上一步运行的容器进行修改,直至完成全部命令

Dockerfile指令总结

6、构建镜像命令 docker build 和 docker historydocker build 命令语法

Usage:    docker build [OPTIONS] PATH | URL | -Build an image from a DockerfileOptions:      --add-host list           Add a custom host-to-IP mapping (host:ip)        --build-arg list          Set build-time variables      --cache-from strings      Images to consider as cache sources      --cgroup-parent string    Optional parent cgroup for the container      --compress                Compress the build context using gzip      --cpu-period int          Limit the CPU CFS (Completely Fair Scheduler) period      --cpu-quota int           Limit the CPU CFS (Completely Fair Scheduler) quota  -c, --cpu-shares int          CPU shares (relative weight)      --cpuset-cpus string      CPUs in which to allow execution (0-3, 0,1)      --cpuset-mems string      MEMs in which to allow execution (0-3, 0,1)      --disable-content-trust   Skip image verification (default true)  -f, --file string             Name of the Dockerfile (Default is 'PATH/Dockerfile')    #指定要使用的Dockerfile路径,可以是文件路径也可以是URL,默认为 PATH/Dockerfile, - 表示从标准输入      --force-rm                Always remove intermediate containers    #设置镜像过程中删除中间容器      --iidfile string          Write the image ID to the file          --isolation string        Container isolation technology    #使用容器隔离技术      --label list              Set metadata for an image  -m, --memory bytes            Memory limit      --memory-swap bytes       Swap limit equal to memory plus swap: '-1' to enable unlimited swap      --network string          Set the networking mode for the RUN instructions during build (default "default")      --no-cache                Do not use cache when building the image  -o, --output stringArray      Output destination (format: type=local,dest=path)      --platform string         Set platform if server is multi-platform capable      --progress string         Set type of progress output (auto, plain, tty). Use plain to show container output (default "auto")      --pull                    Always attempt to pull a newer version of the image  -q, --quiet                   Suppress the build output and print image ID on success      --rm                      Remove intermediate containers after a successful build (default true)      --secret stringArray      Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret      --security-opt strings    Security options      --shm-size bytes          Size of /dev/shm      --squash                  Squash newly built layers into a single new layer      --ssh stringArray         SSH agent socket or keys to expose to the build (only if BuildKit enabled) (format:                                default|<id>[=|[,]])      --stream                  Stream attaches to server to negotiate build context  -t, --tag list                Name and optionally a tag in the 'name:tag' format    #镜像的名字及标签,通常为 /:      --target string           Set the target build stage to build.      --ulimit ulimit           Ulimit options (default [])

docker history 命令用法

Usage:    docker history [OPTIONS] IMAGEShow the history of an imageOptions:      --format string   Pretty-print images using a Go template  -H, --human           Print sizes and dates in human readable format (default true)      --no-trunc        Don't truncate output  -q, --quiet           Only show numeric IDs

7、Dockerfile 案例:构建基于centos7基础镜像yum安装nginx服务镜像

# 调用官方基础镜像 centos7FROM centos:7# 执行命令## 清空原yum源## 下载阿里云源## 下载阿里云epel源## 重建yum数据缓存## 安装基础工具及nginx## 重设时区设置## 写入网页文件## 在nginx配置文件中增加 daemon off; 配置禁用后台运行RUN     rm -rf /etc/yum.repos.d/* && \        curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \        curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo && \        yum clean all && \        yum makecache fast && \        yum install -y psmisc tree wget vim net-tools bash-completion iproute nginx-1.20.1-10.el7 && \        rm -rf /etc/localtime && \        ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \        mkdir /usr/share/doc/HTML -p && \        echo "

nginx-1.20.1 base centOS 7 on docker

" > /usr/share/doc/HTML/index.html && \ sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf# 添加标签## 作者:janzen## 版本:v1.0## 描述 通过yum安装 nginx-1.20.1-10.el7LABEL author="janzen" version="v1.0" description="Installed nginx-1.20.1-10.el7 by yum"# 容器对外暴露端口 80 443EXPOSE 80 443# 启动容器执行命令ENTRYPOINT ["nginx"]

基于nginx镜像基础上创建app1镜像

[root@Docker-Ubu1804-p11:/images/app1]# lsDockerfile  index.html  www.tar[root@Docker-Ubu1804-p11:/images/app1]# docker build -t janzen/app1:v3.0 .Sending build context to Docker daemon  9.964MBStep 1/9 : FROM centos:7 ---> eeb6ee3f44bdStep 2/9 : RUN    rm -rf /etc/yum.repos.d/* &&     curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &&      curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo &&     yum clean all &&     yum makecache fast &&     yum install -y psmisc tree wget vim net-tools bash-completion iproute nginx-1.20.1-10.el7 &&     rm -rf /etc/localtime &&     ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&     mkdir /usr/share/doc/HTML -p &&     echo "

nginx-1.20.1 base centOS 7 on docker

" > /usr/share/doc/HTML/index.html && sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf ---> Using cache ---> ecd44cfdf119Step 3/9 : ENV user="janzen" ---> Running in cb9417981cb1Removing intermediate container cb9417981cb1 ---> ec209bf6726aStep 4/9 : RUN `ls /usr/share/nginx/html | grep ^[^0-9] `| xargs rm -rf ---> Running in bb6ba13888db/bin/sh: en-US: command not foundRemoving intermediate container bb6ba13888db ---> 2ba81f7248c1Step 5/9 : COPY index.html /usr/share/nginx/html ---> 2a73d62713d0Step 6/9 : ADD www.tar /usr/share/nginx/html ---> 77b6b9afdb4bStep 7/9 : LABEL author="${user}" version="v3.0" description="Run APP1 on nginx-1.20.1-10.el7 by yum" ---> Running in 642b5d444277Removing intermediate container 642b5d444277 ---> 3e73ebcf125bStep 8/9 : EXPOSE 80 443 ---> Running in 6846995f59c0Removing intermediate container 6846995f59c0 ---> 1f261302a9aaStep 9/9 : ENTRYPOINT ["nginx"] ---> Running in 2f1113442ef0Removing intermediate container 2f1113442ef0 ---> f65a9531bfc7Successfully built f65a9531bfc7Successfully tagged janzen/app1:v3.0

Dockerfile文件

# 调用官方基础镜像 centos7FROM centos:7# 执行命令## 清空原yum源## 下载阿里云源## 下载阿里云epel源## 重建yum数据缓存## 安装基础工具及nginx## 重设时区设置## 写入网页文件## 在nginx配置文件中增加 daemon off; 配置禁用后台运行RUN    rm -rf /etc/yum.repos.d/* && \    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \    curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo && \    yum clean all && \    yum makecache fast && \    yum install -y psmisc tree wget vim net-tools bash-completion iproute nginx-1.20.1-10.el7 && \    rm -rf /etc/localtime && \    ln -s ../usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \    mkdir /usr/share/doc/HTML -p && \    echo "

nginx-1.20.1 base centOS 7 on docker

" > /usr/share/doc/HTML/index.html && \ sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf# 添加变量 user=janzenENV user="janzen"# 运行命令:清空/usr/share/nginx/html目录下非数字开头的文件RUN `ls /usr/share/nginx/html | grep ^[^0-9] `| xargs rm -rf # 复制宿主机当前目录下的 index.html 到 容器的 /usr/share/nginx/htmlCOPY index.html /usr/share/nginx/html# 复制 www.tar 到 容器的/usr/share/nginx/html 并解压ADD www.tar /usr/share/nginx/html# 添加标签## 作者:调用变量$user ## 版本:v3.0## 描述 基于yum安装的 nginx-1.20.1-10.el7 运行APP1LABEL author="${user}" version="v3.0" description="Run APP1 on nginx-1.20.1-10.el7 by yum"# 容器对外暴露端口 80 443EXPOSE 80 443# 启动容器执行命令ENTRYPOINT ["nginx"]

运行容器,并查看结果

[root@Docker-Ubu1804-p11:/images/app1]# docker run -d -p 8080:80 janzen/app1:v3.0 b78238dfc17151a5ce2d3ec94bfa1da045112bb1833387d304ea505d8bb40601[root@Docker-Ubu1804-p11:/images/app1]#