主頁 >  其他 > 【Docker】鏡像制作和管理

【Docker】鏡像制作和管理

2023-04-27 08:31:52 其他

一、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:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete 
Digest: sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@Docker-Ubu1804-p11:~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
alpine              latest              c059bfaa849c        17 months ago       5.59MB
hello-world         latest              feb5d9fea6a5        19 months ago       13.3kB
centos              7                   eeb6ee3f44bd        19 months ago       204MB
[root@Docker-Ubu1804-p11:~]# docker run -d --name centos-nginx centos:7 tail -f /etc/hosts
502a7a7faae8b7a3c3fa177baec1009d1bc9caabb8b782f887767b35e16ecb8a
[root@Docker-Ubu1804-p11:~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
502a7a7faae8        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  Speed
100  2523  100  2523    0     0  28084      0 --:--:-- --:--:-- --:--:-- 28348
[root@502a7a7faae8 /]# ls /etc/yum.repos.d/
CentOS-Base.repo
[root@502a7a7faae8 /]# yum clean all
Loaded plugins: fastestmirror, ovl
Cleaning repos: base extras updates
[root@502a7a7faae8 /]# yum makecache fast
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                     | 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-completion
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving 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 Resolution

Dependencies 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 k
Installing 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 k

Transaction Summary
================================================================================================================================================
Install  6 Packages (+32 Dependent packages)

Total download size: 20 M
Installed size: 67 M
Downloading 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-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 From       : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running 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.repo
Resolving 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 OK
Length: 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 fast
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                     | 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 nginx
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving 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 Resolution

Dependencies Resolved

================================================================================================================================================
 Package                               Arch                        Version                                   Repository                    Size
================================================================================================================================================
Installing:
 nginx                                 x86_64                      1:1.20.1-10.el7                           epel                         588 k
Installing 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 M
Updating for dependencies:
 openssl-libs                          x86_64                      1:1.0.2k-26.el7_9                         updates                      1.2 M

Transaction Summary
================================================================================================================================================
Install  1 Package  (+7 Dependent packages)
Upgrade             ( 1 Dependent package)

Total download size: 26 M
Downloading 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 check
Running transaction test
Transaction test succeeded
Running 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 -v
nginx 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.html
bash: /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 -ntl
Active 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 -i
172.17.0.2
[root@502a7a7faae8 /]# curl 172.17.0.2
nginix-1.20.1 on in docker


##修改nginx服務配置daemon off;,設定服務前臺運行
[root@502a7a7faae8 /]# vim /etc/nginx/nginx.conf
[root@502a7a7faae8 /]# cat /etc/nginx/nginx.conf | grep daemon
daemon 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 ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 502a7a7faae8 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.0 sha256:fd0513c9ae5e01e5be7122c7df7a1eb81a9ebce14a4752552cdd47b3be70f821 [root@Docker-Ubu1804-p11:~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE janzen/nginx-centos7 1.20.1-v1.0 fd0513c9ae5e 12 seconds ago 559MB alpine latest c059bfaa849c 17 months ago 5.59MB hello-world latest feb5d9fea6a5 19 months ago 13.3kB centos 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 nginx
571850aae7dfdfcdd24ddff07e9e98c3da1ceed03e0c89b9bc6bb66caa184ce5
[root@Docker-Ubu1804-p11:~]# docker ps
CONTAINER ID        IMAGE                              COMMAND             CREATED             STATUS              PORTS                         NAMES
571850aae7df        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.11
nginix-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 └── tomcat 14 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 常用命令
FROM
LABEL
ENV
ADD
COPY
RUN
CMD
ENTRYPOINT

Dockerfile構建程序

1、從基礎鏡像運行一個容器

2、執行對應的指令對容器做出修改

3、執行類似docker commit 操作,提交一個新的中間層鏡像(可以利用中間層鏡像創建容器進行除錯與排錯)

4、再基于上一步生成的中間層鏡像運行一個容器

5、執行下一條指令對上一步運行的容器進行修改,直至完成全部命令

Dockerfile指令總結

 

6、構建鏡像命令 docker build 和 docker history

docker build 命令語法

Usage:    docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Options:
      --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=https://www.cnblogs.com/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>[=<socket>|<key>[,<key>]])
      --stream                  Stream attaches to server to negotiate build context
  -t, --tag list                Name and optionally a tag in the 'name:tag' format    #鏡像的名字及標簽,通常為 <專案名稱 或 作者>/<鏡像名>:<版本,默認為 latest>
      --target string           Set the target build stage to build.
      --ulimit ulimit           Ulimit options (default [])

docker history 命令用法

Usage:    docker history [OPTIONS] IMAGE

Show the history of an image

Options:
      --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服務鏡像

# 呼叫官方基礎鏡像 centos7
FROM 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 "<h1>nginx-1.20.1 base centOS 7 on docker</h1>" > /usr/share/doc/HTML/index.html && \
        sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf

# 添加標簽
## 作者:janzen<janzen.com>
## 版本:v1.0
## 描述 通過yum安裝 nginx-1.20.1-10.el7
LABEL author="janzen<janzen.com>" version="v1.0" description="Installed nginx-1.20.1-10.el7 by yum"


# 容器對外暴露埠 80 443
EXPOSE 80 443

# 啟動容器執行命令
ENTRYPOINT ["nginx"]

 

 

 

基于nginx鏡像基礎上創建app1鏡像

[root@Docker-Ubu1804-p11:/images/app1]# ls
Dockerfile  index.html  www.tar
[root@Docker-Ubu1804-p11:/images/app1]# docker build -t janzen/app1:v3.0 .
Sending build context to Docker daemon  9.964MB
Step 1/9 : FROM centos:7
 ---> eeb6ee3f44bd
Step 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 "<h1>nginx-1.20.1 base centOS 7 on docker</h1>" > /usr/share/doc/HTML/index.html &&     sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf
 ---> Using cache
 ---> ecd44cfdf119
Step 3/9 : ENV user="janzen"
 ---> Running in cb9417981cb1
Removing intermediate container cb9417981cb1
 ---> ec209bf6726a
Step 4/9 : RUN `ls /usr/share/nginx/html | grep  ^[^0-9] `| xargs rm -rf
 ---> Running in bb6ba13888db
/bin/sh: en-US: command not found
Removing intermediate container bb6ba13888db
 ---> 2ba81f7248c1
Step 5/9 : COPY index.html /usr/share/nginx/html
 ---> 2a73d62713d0
Step 6/9 : ADD www.tar /usr/share/nginx/html
 ---> 77b6b9afdb4b
Step 7/9 : LABEL author="${user}<janzen.com>" version="v3.0" description="Run APP1 on nginx-1.20.1-10.el7 by yum"
 ---> Running in 642b5d444277
Removing intermediate container 642b5d444277
 ---> 3e73ebcf125b
Step 8/9 : EXPOSE 80 443
 ---> Running in 6846995f59c0
Removing intermediate container 6846995f59c0
 ---> 1f261302a9aa
Step 9/9 : ENTRYPOINT ["nginx"]
 ---> Running in 2f1113442ef0
Removing intermediate container 2f1113442ef0
 ---> f65a9531bfc7
Successfully built f65a9531bfc7
Successfully tagged janzen/app1:v3.0

 

Dockerfile檔案

# 呼叫官方基礎鏡像 centos7
FROM 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 "<h1>nginx-1.20.1 base centOS 7 on docker</h1>" > /usr/share/doc/HTML/index.html && \
    sed -i '/^pid/a daemon off;' /etc/nginx/nginx.conf

# 添加變數 user=janzen
ENV user="janzen"

# 運行命令:清空/usr/share/nginx/html目錄下非數字開頭的檔案
RUN `ls /usr/share/nginx/html | grep  ^[^0-9] `| xargs rm -rf 

# 復制宿主機當前目錄下的 index.html 到 容器的 /usr/share/nginx/html
COPY index.html /usr/share/nginx/html

# 復制 www.tar 到 容器的/usr/share/nginx/html 并解壓
ADD www.tar /usr/share/nginx/html

# 添加標簽
## 作者:呼叫變數$user <janzen.com>
## 版本:v3.0
## 描述 基于yum安裝的 nginx-1.20.1-10.el7 運行APP1
LABEL author="${user}<janzen.com>" version="v3.0" description="Run APP1 on nginx-1.20.1-10.el7 by yum"

# 容器對外暴露埠 80 443
EXPOSE 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]# 

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551326.html

標籤:其他

上一篇:吾日三省吾身|最近反思-2023-04-27

下一篇:返回列表

標籤雲
其他(158210) Python(38107) JavaScript(25394) Java(18001) C(15217) 區塊鏈(8260) C#(7972) AI(7469) 爪哇(7425) MySQL(7148) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5870) 数组(5741) R(5409) Linux(5329) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4562) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2431) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1960) Web開發(1951) HtmlCss(1927) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1874) .NETCore(1855) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 【Docker】鏡像制作和管理

    一、Docker鏡像說明 二、基于容器通過 docker commit 手動制作鏡像 1、基于容器手動制作鏡像步驟 1、下載官方系統鏡像 2、基于官方基礎鏡像啟動容器,并進入容器 3、在容器中進行配置操作 3.1、安裝基礎工具 3.2、配置運行環境 3.3、安裝并配置服務 3.4、存放業務程式代碼 ......

    uj5u.com 2023-04-27 08:31:52 more
  • 吾日三省吾身|最近反思-2023-04-27

    做專案得出對自我的認知 最近接了一個后臺管理的專案,由于自己身處自由狀態,且很多課很多事情沒有完成,也不知這個專案會不會給自己增加物質上的回饋,本身可能由于處女座吧,又不能直接放手,前幾天很是糾結,覺得自己應該做其他更重要的事。昨天想放棄了,但是又不能直接撒手不管,那要是直接放棄了,萬一這件事對人家 ......

    uj5u.com 2023-04-27 08:31:42 more
  • 解決macOSwifi已連接但上不了網的問題

    問題發生條件 剛剛更新macOS 13.3.1(非強相關) 連接的是校園網(可能有關系) 突然發生的,無任何預兆 問題現象 wifi圖示為灰色,且感嘆號 wifi詳情顯示:- 已連接 -無網路連接 - 無ip地址 上不了網,但是連接手機熱點沒問題 解決程序 解決方法1(無用) 忘記wifi,重新連接 ......

    uj5u.com 2023-04-27 08:31:37 more
  • 【飲食與健康】【AIGC創作】表觀生理年齡逆轉指北

    一、引言 我們都知道,歲月不饒人,但是誰又不想在歲月的長河中留下青春的容顏呢?在這個人人都追求健康和美麗的時代,我們的生活節奏卻愈發緊張,高壓的作業和不規律的作息讓我們的身體時刻處于亞健康狀態。這時候,你是不是開始想:“要是有一個方法能讓我變年輕,那該有多好啊!”好訊息是,科學家們已經找到了一個辦法 ......

    uj5u.com 2023-04-27 08:31:30 more
  • SRC相關知識分享

    SRC是企業采用眾測的方式,將企業內部的部分系統開發出來,供社會上散布的白帽子黑客進行滲透測驗,通過獎金和榮譽等激勵措施,鼓勵白帽在黑客在SRC平臺上傳漏洞,以此獲取實時的漏洞,進而第一時間修復漏洞。 ......

    uj5u.com 2023-04-27 08:31:22 more
  • [ML&DL] 正規方程

    正規方程 正規方程用于一次性求解 $\theta$ 的最優值。 在計算的時候,將資料集構造為一個矩陣(第一列為 $x_0$ 均等于$1$): 通過公式: $$ \theta = (X^TX)^{-1}X^Ty $$ 計算得到最優解 $\theta$。 關于$X$的設計 對于第 $i$ 組資料: $$ ......

    uj5u.com 2023-04-27 08:31:15 more
  • 如何在jmeter中把回應中的資料提取出來并參考

    jmeter做介面測驗程序中,經常遇到請求需要用到token的時候,我們可以把回傳token的介面用后置處理器提取出來,但是在這種情況下,只能適用于當前的執行緒組,其他執行緒組無法參考到提取的token變數值,所以必須要生成全域變數讓測驗計劃下的所有執行緒組都可以參考變數。 ......

    uj5u.com 2023-04-27 08:31:02 more
  • 打工人逃不開「單人單崗」

    「閑」到停不下來,「忙」到無事可做! 01 年后開始,研發團隊一直「單人單崗」; 為什么? 就是所謂的追求降本,無非裁員的手段,最終的目的就是讓團隊的人員結構簡化到極致; 雖然符合公司預期,但是與打工人的預期強烈不符; 然而,這不重要; 打工人的難處,老板不一定關心;但是老板的難處,打工人必然被關心 ......

    uj5u.com 2023-04-27 08:30:44 more
  • 位元組超全學習流程圖流出,100天漲薪10k,從功能測驗到自動化測驗

    今年年初,由于經濟壓力讓我下定決心進階自動化測驗,已經24的我做了3年功能測驗,坐標廣州薪資定格在8k,可能是生活過的太安逸,覺得8000的工資也夠了。
    努力終究是有回報的,在前幾天跳槽成功工資到達了一個新高12k,雖然比不上一些社會精英,但是我也滿足了,經過此次事見之后,我也相信我的工資絕不會止步... ......

    uj5u.com 2023-04-27 08:30:37 more
  • [ML&DL] 線性回歸的梯度下降

    前言 這篇筆記記錄了線性回歸的梯度下降相關公式的推導。 符號說明: $h$ :假設函式,是學習演算法對線性回歸問題給出的一個解決方案。 $J$ :代價函式,是對 $h$ 和實際資料集之間的誤差的描述。 $m$ :資料集的大小。 $x^{(i)},y^{(i)}$: 第 $i$ 個資料。($1\le i ......

    uj5u.com 2023-04-27 08:30:29 more