(2022版)一套教程搞定k8s安装到实战 | Docker基础

442 阅读28分钟

视频来源:B站《(2022版)最新、最全、最详细的Kubernetes(K8s)教程,从K8s安装到实战一套搞定》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:(2022版)一套教程搞定k8s安装到实战 | 汇总_COCOgsta的博客-CSDN博客


Docker基本命令

[root@k8s-master01 ~]# docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.40
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          19.03.15
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       99e3ed8919
  Built:            Sat Jan 30 03:16:33 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
WARNING: Plugin "/usr/libexec/docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /usr/libexec/docker/cli-plugins/docker-scan: exec format error

Server:
 Containers: 10
  Running: 4
  Paused: 0
  Stopped: 6
 Images: 5
 Server Version: 19.03.15
 Storage Driver: devicemapper # aufs、overlay brtfs
  Pool Name: docker-253:0-3035967-pool
  Pool Blocksize: 65.54kB
  Base Device Size: 10.74GB
  Backing Filesystem: xfs
  Udev Sync Supported: true
  Data file: /dev/loop0
  Metadata file: /dev/loop1
  Data loop file: /var/lib/docker/devicemapper/devicemapper/data
  Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
  Data Space Used: 619.4MB
  Data Space Total: 107.4GB
  Data Space Available: 10.63GB
  Metadata Space Used: 18.56MB
  Metadata Space Total: 2.147GB
  Metadata Space Available: 2.129GB
  Thin Pool Minimum Free Space: 10.74GB
  Deferred Removal Enabled: true
  Deferred Deletion Enabled: true
  Deferred Deleted Device Count: 0
  Library Version: 1.02.170-RHEL7 (2020-03-24)
 Logging Driver: json-file # json-file存在本地
 Cgroup Driver: systemd
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc version: v1.1.2-0-ga916309
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 4.19.12-1.el7.elrepo.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.923GiB
 Name: k8s-master01
 ID: PPTJ:RXWD:5IWS:62IC:2GP4:RKI7:R233:3RGW:D6LN:4IXW:WUUZ:NJHR
 Docker Root Dir: /var/lib/docker # 可以更改的,ssd的硬盘,最好使用一个单独的磁盘进行挂载
 Debug Mode: false
 Registry: https://index.docker.io/v1/ # hub.docker.com
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: the devicemapper storage-driver is deprecated, and will be removed in a future release.
WARNING: devicemapper: usage of loopback devices is strongly discouraged for production use.
         Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker search centos
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                                       The official build of CentOS.                   7199      [OK]       
centos/systemd                               systemd enabled base container.                 108                  [OK]
centos/mysql-57-centos7                      MySQL 5.7 SQL database server                   95                   
kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            21                   
centos/mongodb-36-centos7                    MongoDB NoSQL database server                   8                    
kasmweb/core-centos-7                        CentOS 7 base image for Kasm Workspaces         3                    
continuumio/centos5_gcc5_base                                                                3                    
couchbase/centos7-systemd                    centos7-systemd images with additional debug…   1                    [OK]
spack/centos7                                CentOS 7 with Spack preinstalled                1                    
spack/centos-stream                                                                          0                    
couchbase/centos-72-jenkins-core                                                             0                    
fnndsc/centos-python3                        Source for a slim Centos-based Python3 image…   0                    [OK]
couchbase/centos-72-java-sdk                                                                 0                    
couchbase/centos-69-sdk-build                                                                0                    
couchbase/centos-70-sdk-build                                                                0                    
datadog/centos-i386                                                                          0                    
spack/centos6                                CentOS 6 with Spack preinstalled                0                    
starlingx/stx-centos                         StarlingX centos                                0                    
ibmcom/fhe-toolkit-centos-amd64              The IBM Fully Homomorphic Encryption (FHE) T…   0                    
ibmcom/fhe-toolkit-centos                    The IBM Fully Homomorphic Encryption (FHE) T…   0                    
apache/couchdbci-centos                      Apache CouchDB CI CentOS                        0                    
silintl/openldap                             OpenLDAP base image on Centos 6                 0                    [OK]
bitnami/centos-extras-base                                                                   0                    
bitnami/centos-base-buildpack                Centos base compilation image                   0                    [OK]
couchbase/centos-69-sdk-nodevtoolset-build                                                   0                    
[root@k8s-master01 ~]# docker search nginx
NAME                                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                                             Official build of Nginx.                        16983     [OK]       
linuxserver/nginx                                 An Nginx container, brought to you by LinuxS…   169                  
bitnami/nginx                                     Bitnami nginx Docker Image                      131                  [OK]
ubuntu/nginx                                      Nginx, a high-performance reverse proxy & we…   52                   
bitnami/nginx-ingress-controller                  Bitnami Docker Image for NGINX Ingress Contr…   18                   [OK]
rancher/nginx-ingress-controller                                                                  10                   
clearlinux/nginx                                  Nginx reverse proxy server with the benefits…   4                    
ibmcom/nginx-ingress-controller                   Docker Image for IBM Cloud Private-CE (Commu…   4                    
bitnami/nginx-ldap-auth-daemon                                                                    3                    
rancher/nginx                                                                                     2                    
bitnami/nginx-exporter                                                                            2                    
vmware/nginx                                                                                      2                    
rancher/nginx-ingress-controller-defaultbackend                                                   2                    
circleci/nginx                                    This image is for internal use                  2                    
vmware/nginx-photon                                                                               1                    
rapidfort/nginx                                   RapidFort optimized, hardened image for NGINX   1                    
wallarm/nginx-ingress-controller                  Kubernetes Ingress Controller with Wallarm e…   1                    
bitnami/nginx-intel                                                                               1                    
kasmweb/nginx                                     An Nginx image based off nginx:alpine and in…   1                    
rancher/nginx-conf                                                                                0                    
ibmcom/nginx-ingress-controller-ppc64le           Docker Image for IBM Cloud Private-CE (Commu…   0                    
continuumio/nginx-ingress-ws                                                                      0                    
rancher/nginx-ingress-controller-amd64                                                            0                    
ibmcom/nginx-ppc64le                              Docker image for nginx-ppc64le                  0                    
rancher/nginx-ssl                                                                                 0                    
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker pull alpine:latest # 本地若有镜像不会重复拉取
latest: Pulling from library/alpine
2408cc74d12b: Pull complete 
Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
You have new mail in /var/spool/mail/root
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker tag alpine:latest guolianggsta/alpine:latest
[root@k8s-master01 ~]# docker tag alpine:latest guolianggsta/alpine:latest
jConfigure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker push guolianggsta/alpine:latest
The push refers to repository [docker.io/guolianggsta/alpine]
24302eb7d908: Mounted from library/alpine 
latest: digest: sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253 size: 528
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker run -it alpine:latest  sh
/ # 
/ # 
/ # 
/ # 

[root@k8s-master01 ~]# docker run -it nginx:1.14.2 sh
Unable to find image 'nginx:1.14.2' locally
1.14.2: Pulling from library/nginx
27833a3ba0a5: Pull complete 
0f23e58bd0b7: Pull complete 
8ca774778e85: Pull complete 
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14.2
# 
# 

[root@k8s-master01 ~]# docker run -d nginx:1.14.2 sh # -d表示后台启动一个进程
f3925ab212784ce86d350776d3b0daca2688f0a0edf28ff621d1cfe7528e04b9
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker logs -f b1aa9b735420
{"level":"info","msg":"Kubernetes host: https://10.96.0.1:443","time":"2022-06-23T02:13:21Z"}
192.168.1.107 - - [23/Jun/2022:02:13:52 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:14:02 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:14:12 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
{"level":"info","msg":"Database updated: 5 nodes, 10 pods","time":"2022-06-23T02:14:21Z"}
192.168.1.107 - - [23/Jun/2022:02:14:22 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
172.25.92.64 - - [23/Jun/2022:02:14:24 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.0.4"
192.168.1.107 - - [23/Jun/2022:02:14:32 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:14:42 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:14:52 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
172.25.92.64 - - [23/Jun/2022:02:14:54 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.0.4"
192.168.1.107 - - [23/Jun/2022:02:15:02 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:15:12 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
{"level":"info","msg":"Database updated: 5 nodes, 10 pods","time":"2022-06-23T02:15:21Z"}
192.168.1.107 - - [23/Jun/2022:02:15:22 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
172.25.92.64 - - [23/Jun/2022:02:15:24 +0000] "GET /healthz HTTP/1.1" 200 13 "" "dashboard/v2.0.4"
192.168.1.107 - - [23/Jun/2022:02:15:32 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
192.168.1.107 - - [23/Jun/2022:02:15:42 +0000] "GET / HTTP/1.1" 200 6 "" "kube-probe/1.20"
[root@k8s-master01 ~]# docker ps
CONTAINER ID   IMAGE                                                                 COMMAND              CREATED        STATUS        PORTS     NAMES
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"   24 hours ago   Up 24 hours             k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"             24 hours ago   Up 24 hours             k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"        24 hours ago   Up 24 hours             k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"             24 hours ago   Up 24 hours             k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps -a
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED          STATUS                      PORTS     NAMES
f3925ab21278   nginx:1.14.2                                                          "sh"                     20 minutes ago   Exited (0) 20 minutes ago             optimistic_joliot
dc89f8fb24c8   nginx:1.14.2                                                          "sh"                     22 minutes ago   Exited (0) 20 minutes ago             sleepy_borg
04cd7a480254   alpine:latest                                                         "sh"                     24 minutes ago   Exited (0) 23 minutes ago             adoring_faraday
d99c0a30c82c   alpine:latest                                                         "bash"                   24 minutes ago   Created                               distracted_khorana
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"       24 hours ago     Up 24 hours                           k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago     Up 24 hours                           k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"            24 hours ago     Up 24 hours                           k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
ec82192edef4   963564fb95ed                                                          "/usr/local/bin/flex…"   24 hours ago     Exited (0) 24 hours ago               k8s_flexvol-driver_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
ab63d540576f   ca5564c06ea0                                                          "/install-cni.sh"        24 hours ago     Exited (0) 24 hours ago               k8s_install-cni_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago     Up 24 hours                           k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
6b91d896f94c   registry.cn-beijing.aliyuncs.com/dotbalo/metrics-scraper              "/metrics-sidecar"       44 hours ago     Exited (2) 24 hours ago               k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_0
f15b45ac36ef   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 44 hours ago     Exited (0) 24 hours ago               k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_0
e56fca8267fa   registry.cn-beijing.aliyuncs.com/dotbalo/node                         "start_runit"            47 hours ago     Exited (0) 24 hours ago               k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
dc9471add10b   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 47 hours ago     Exited (0) 24 hours ago               k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps -q
b1aa9b735420
646932befa6a
27a98fe675fc
2bcad372e77e
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps -qa
f3925ab21278
dc89f8fb24c8
04cd7a480254
d99c0a30c82c
b1aa9b735420
646932befa6a
27a98fe675fc
ec82192edef4
ab63d540576f
2bcad372e77e
6b91d896f94c
f15b45ac36ef
e56fca8267fa
dc9471add10b
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker exec -it  27a98fe675fc bash
[root@k8s-master01 /]# 
[root@k8s-master01 /]# 
[root@k8s-master01 /]# ls
@System.solv  bin  boot  calico-secrets  dev  etc  home  included-source  lib  lib64  licenses  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@k8s-master01 /]# 
[root@k8s-master01 ~]# echo "test cp" > index.html
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# ls
anaconda-ks.cfg                  index.html            k8s-ha-install                             kernel-ml-devel-4.19.12-1.el7.elrepo.x86_64.rpm
etcd-v3.4.13-linux-amd64.tar.gz  initial-setup-ks.cfg  kernel-ml-4.19.12-1.el7.elrepo.x86_64.rpm  kubernetes-server-linux-amd64.tar.gz
[root@k8s-master01 ~]# docker cp index.html 6f7256e24436:/usr/share/nginx/html/
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker cp 6f7256e24436:/usr/share/nginx/html/index.html .
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps -a
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED          STATUS                      PORTS                   NAMES
6f7256e24436   nginx:1.14.2                                                          "nginx -g 'daemon of…"   4 minutes ago    Up 4 minutes                0.0.0.0:12345->80/tcp   keen_mccarthy
f3925ab21278   nginx:1.14.2                                                          "sh"                     35 minutes ago   Exited (0) 35 minutes ago                           optimistic_joliot
dc89f8fb24c8   nginx:1.14.2                                                          "sh"                     38 minutes ago   Exited (0) 36 minutes ago                           sleepy_borg
04cd7a480254   alpine:latest                                                         "sh"                     39 minutes ago   Exited (0) 39 minutes ago                           adoring_faraday
d99c0a30c82c   alpine:latest                                                         "bash"                   40 minutes ago   Created                                             distracted_khorana
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"       24 hours ago     Up 24 hours                                         k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago     Up 24 hours                                         k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"            24 hours ago     Up 24 hours                                         k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
ec82192edef4   963564fb95ed                                                          "/usr/local/bin/flex…"   24 hours ago     Exited (0) 24 hours ago                             k8s_flexvol-driver_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
ab63d540576f   ca5564c06ea0                                                          "/install-cni.sh"        24 hours ago     Exited (0) 24 hours ago                             k8s_install-cni_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago     Up 24 hours                                         k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
6b91d896f94c   registry.cn-beijing.aliyuncs.com/dotbalo/metrics-scraper              "/metrics-sidecar"       44 hours ago     Exited (2) 24 hours ago                             k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_0
f15b45ac36ef   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 44 hours ago     Exited (0) 24 hours ago                             k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_0
e56fca8267fa   registry.cn-beijing.aliyuncs.com/dotbalo/node                         "start_runit"            2 days ago       Exited (0) 24 hours ago                             k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
dc9471add10b   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 2 days ago       Exited (0) 24 hours ago                             k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_0
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker rm f3925ab21278
f3925ab21278
[root@k8s-master01 ~]# docker images
REPOSITORY                                                        TAG       IMAGE ID       CREATED         SIZE
guolianggsta/alpine                                               latest    e66264b98777   4 weeks ago     5.52MB
alpine                                                            latest    e66264b98777   4 weeks ago     5.52MB
registry.cn-beijing.aliyuncs.com/dotbalo/node                     v3.15.3   d45bf977dfbf   21 months ago   262MB
registry.cn-beijing.aliyuncs.com/dotbalo/pod2daemon-flexvol       v3.15.3   963564fb95ed   21 months ago   22.8MB
registry.cn-beijing.aliyuncs.com/dotbalo/cni                      v3.15.3   ca5564c06ea0   21 months ago   110MB
registry.cn-beijing.aliyuncs.com/dotbalo/metrics-scraper          v1.0.4    86262685d9ab   2 years ago     36.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64   3.2       80d28bedfe5d   2 years ago     683kB
nginx                                                             1.14.2    295c7be07902   3 years ago     109MB
[root@k8s-master01 ~]# docker rmi guolianggsta/alpine
Untagged: guolianggsta/alpine:latest
Untagged: guolianggsta/alpine@sha256:4ff3ca91275773af45cb4b0834e12b7eb47d1c18f770a0b151381cd227f4c253
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED         STATUS         PORTS                   NAMES
6f7256e24436   nginx:1.14.2                                                          "nginx -g 'daemon of…"   6 minutes ago   Up 6 minutes   0.0.0.0:12345->80/tcp   keen_mccarthy
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"       24 hours ago    Up 24 hours                            k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"            24 hours ago    Up 24 hours                            k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker stop 6f7256e24436
6f7256e24436
[root@k8s-master01 ~]# docker ps
CONTAINER ID   IMAGE                                                                 COMMAND              CREATED        STATUS        PORTS     NAMES
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"   24 hours ago   Up 24 hours             k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"             24 hours ago   Up 24 hours             k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"        24 hours ago   Up 24 hours             k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"             24 hours ago   Up 24 hours             k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker start 6f7256e24436
6f7256e24436
[root@k8s-master01 ~]# docker ps 
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED         STATUS         PORTS                   NAMES
6f7256e24436   nginx:1.14.2                                                          "nginx -g 'daemon of…"   7 minutes ago   Up 7 seconds   0.0.0.0:12345->80/tcp   keen_mccarthy
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"       24 hours ago    Up 24 hours                            k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"            24 hours ago    Up 24 hours                            k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker history alpine
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
e66264b98777   4 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B        
<missing>      4 weeks ago   /bin/sh -c #(nop) ADD file:8e81116368669ed3d…   5.52MB    
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker ps
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED         STATUS         PORTS                   NAMES
6f7256e24436   nginx:1.14.2                                                          "nginx -g 'daemon of…"   9 minutes ago   Up 2 minutes   0.0.0.0:12345->80/tcp   keen_mccarthy
b1aa9b735420   86262685d9ab                                                          "/metrics-sidecar"       24 hours ago    Up 24 hours                            k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_1
646932befa6a   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_dashboard-metrics-scraper-7645f69d8c-92hzc_kubernetes-dashboard_b5bd764b-b520-4450-99d9-aac6c55e8316_2
27a98fe675fc   d45bf977dfbf                                                          "start_runit"            24 hours ago    Up 24 hours                            k8s_calico-node_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
2bcad372e77e   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 24 hours ago    Up 24 hours                            k8s_POD_calico-node-tstnv_kube-system_9f4ae917-7448-4a99-aca2-f7126c768a0a_1
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker cp index.html 6f7256e24436:/usr/share/nginx/html/
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker commit -a "guolianggsta" -m "add index.html" 6f7256e24436 nginx:commit
sha256:029ceeabb47df6459ce0745b691a2ef1477e3627ff3371ccffd481534ebe6c47
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# 
[root@k8s-master01 ~]# docker run -it --rm nginx:commit bash
root@bab55273616f:/# cd /usr/share/nginx/html/
root@bab55273616f:/usr/share/nginx/html# ls
50x.html  index.html
root@bab55273616f:/usr/share/nginx/html# ls -l
total 8
-rw-r--r-- 1 root root 537 Dec  4  2018 50x.html
-rw-r--r-- 1 root root   8 Jun 24 02:32 index.html
root@bab55273616f:/usr/share/nginx/html# 

Dockerfile指令

FROM:继承基础镜像
MAINTAINER:镜像制作者信息
RUN:用来执行shell命令
EXPOSE:暴露端口号
CMD:启动容器默认执行的命令
ENTRYPOINT:启动容器真正执行的命令
VOLUME:创建挂载点
ENV:配置环境变量
ADD:复制文件到容器(如果是tar包会解压)
COPY:复制文件到容器
WORKDIR:设置容器的工作目录
USER:容器使用的用户

举例1:RUN

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

RUN useradd guoliang
RUN mkdir /opt/guoliang
[root@k8s-master01 dockerfiles]# docker build -t centos:user .
Sending build context to Docker daemon  2.048kB
Step 1/5 : FROM centos
latest: Pulling from library/centos
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
 ---> 5d0da3dc9764
Step 2/5 : LABEL maintainer="test dockerfile"
 ---> Running in 369d1d05266b
Removing intermediate container 369d1d05266b
 ---> 4d416c026780
Step 3/5 : LABEL test=dockerfile
 ---> Running in 31b078c631bc
Removing intermediate container 31b078c631bc
 ---> 786676f65452
Step 4/5 : RUN useradd guoliang
 ---> Running in 19e0da577664
Removing intermediate container 19e0da577664
 ---> 96a6eca9f8c8
Step 5/5 : RUN mkdir /opt/guoliang
 ---> Running in 02c0b95ef5be
Removing intermediate container 02c0b95ef5be
 ---> 587879dbddf7
Successfully built 587879dbddf7
Successfully tagged centos:user
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:user bash
[root@949ac3305ee4 /]# 
[root@949ac3305ee4 /]# 
[root@949ac3305ee4 /]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
guoliang:x:1000:1000::/home/guoliang:/bin/bash
[root@949ac3305ee4 /]# cd /opt/guoliang/ 

举例2:CMD

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang


CMD [ "sh","-c","echo 1" ]
[root@k8s-master01 dockerfiles]# docker build -t centos:cmd .
Sending build context to Docker daemon  2.048kB
Step 1/6 : FROM centos
 ---> 5d0da3dc9764
Step 2/6 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/6 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/6 : RUN useradd guoliang
 ---> Using cache
 ---> 96a6eca9f8c8
Step 5/6 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 587879dbddf7
Step 6/6 : CMD [ "sh","-c","echo 1" ]
 ---> Running in bec60d75f619
Removing intermediate container bec60d75f619
 ---> 2c3e184a5a3f
Successfully built 2c3e184a5a3f
Successfully tagged centos:cmd
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:cmd 
1
[root@k8s-master01 dockerfiles]# 

举例3:CMD传参

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

ENTRYPOINT ["echo"]

CMD [ "sh","-c","echo 1" ]
You have new mail in /var/spool/mail/root
[root@k8s-master01 dockerfiles]# docker build -t centos:ep .
Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM centos
 ---> 5d0da3dc9764
Step 2/7 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/7 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/7 : RUN useradd guoliang
 ---> Using cache
 ---> 96a6eca9f8c8
Step 5/7 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 587879dbddf7
Step 6/7 : ENTRYPOINT ["echo"]
 ---> Running in 2ad94b3af36d
Removing intermediate container 2ad94b3af36d
 ---> b7a973b218f7
Step 7/7 : CMD [ "sh","-c","echo 1" ]
 ---> Running in 2042a1645fb2
Removing intermediate container 2042a1645fb2
 ---> 757cb8c614ea
Successfully built 757cb8c614ea
Successfully tagged centos:ep
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:ep 10 # 会覆盖cmd,并将10作为参数传给ENTRYPOINT
10
[root@k8s-master01 dockerfiles]# 

举例3:ENV

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

CMD echo "$test_env1 $test_env2"
[root@k8s-master01 dockerfiles]# docker build -t centos:env .
Sending build context to Docker daemon  2.048kB
Step 1/8 : FROM centos
 ---> 5d0da3dc9764
Step 2/8 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/8 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/8 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/8 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/8 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/8 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/8 : CMD echo "$test_env1 $test_env2"
 ---> Running in d1ab56774aac
Removing intermediate container d1ab56774aac
 ---> edf3c2746064
Successfully built edf3c2746064
Successfully tagged centos:env
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:env
env1 env2

举例4:ADD

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/

CMD echo "$test_env1 $test_env2"
[root@k8s-master01 dockerfiles]# echo 123 > index.html
[root@k8s-master01 dockerfiles]# mkdir t
[root@k8s-master01 dockerfiles]# tar zcf index.tar.gz index.html t/
[root@k8s-master01 dockerfiles]# ls
Dockerfile  index.html  index.tar.gz  t
[root@k8s-master01 dockerfiles]# docker build -t centos:add .
Sending build context to Docker daemon  4.608kB
Step 1/9 : FROM centos
 ---> 5d0da3dc9764
Step 2/9 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/9 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/9 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/9 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/9 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/9 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/9 : ADD ./index.tar.gz /opt/
 ---> 12a00abfa8bd
Step 9/9 : CMD echo "$test_env1 $test_env2"
 ---> Running in b228f2da731a
Removing intermediate container b228f2da731a
 ---> 8b298ae30bc0
Successfully built 8b298ae30bc0
Successfully tagged centos:add
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:add bash
[root@7112579dd6e7 /]# cd /opt
[root@7112579dd6e7 opt]# ls
guoliang  index.html  t
[root@7112579dd6e7 opt]# 

举例5:COPY

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/
COPY ./t /opt/guoliang/

CMD echo "$test_env1 $test_env2"
[root@k8s-master01 dockerfiles]# cd t/
[root@k8s-master01 t]# echo test > test.txt
[root@k8s-master01 t]# 
[root@k8s-master01 t]# cd ..
[root@k8s-master01 dockerfiles]# docker build -t centos:copy .
Sending build context to Docker daemon  5.632kB
Step 1/10 : FROM centos
 ---> 5d0da3dc9764
Step 2/10 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/10 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/10 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/10 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/10 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/10 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/10 : ADD ./index.tar.gz /opt/
 ---> Using cache
 ---> 12a00abfa8bd
Step 9/10 : COPY ./t /opt/guoliang/
 ---> 8f8d6a5a2b7e
Step 10/10 : CMD echo "$test_env1 $test_env2"
 ---> Running in bd0061934b93
Removing intermediate container bd0061934b93
 ---> 062dd8e2c609
Successfully built 062dd8e2c609
Successfully tagged centos:copy
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:copy bash
[root@961085e9e4fc /]# cd /opt/guoliang/
[root@961085e9e4fc guoliang]# ls
test.txt # 不会拷贝当前目录,但可以拷贝当前目录的下一层目录,拷贝文件也不会解压

举例6:COPY不会解压

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/
COPY ./index.tar.gz /opt/guoliang/

CMD echo "$test_env1 $test_env2"
[root@k8s-master01 dockerfiles]# docker build -t centos:copy .
Sending build context to Docker daemon  5.632kB
Step 1/10 : FROM centos
 ---> 5d0da3dc9764
Step 2/10 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/10 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/10 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/10 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/10 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/10 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/10 : ADD ./index.tar.gz /opt/
 ---> Using cache
 ---> 12a00abfa8bd
Step 9/10 : COPY ./index.tar.gz /opt/guoliang/
 ---> 00d26becacce
Step 10/10 : CMD echo "$test_env1 $test_env2"
 ---> Running in 413cdde90d0e
Removing intermediate container 413cdde90d0e
 ---> bbb0bd13c11c
Successfully built bbb0bd13c11c
Successfully tagged centos:copy
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:copy bash
[root@ffb8f53a6ca2 /]# cd /opt/guoliang
[root@ffb8f53a6ca2 guoliang]# ls
index.tar.gz

举例7:WORKDIR

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/
COPY ./index.tar.gz /opt/guoliang/

WORKDIR /opt/guoliang
CMD pwd; ls
[root@k8s-master01 dockerfiles]# docker build -t centos:workdir .
Sending build context to Docker daemon  5.632kB
Step 1/11 : FROM centos
 ---> 5d0da3dc9764
Step 2/11 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/11 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/11 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/11 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/11 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/11 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/11 : ADD ./index.tar.gz /opt/
 ---> Using cache
 ---> 12a00abfa8bd
Step 9/11 : COPY ./index.tar.gz /opt/guoliang/
 ---> Using cache
 ---> 00d26becacce
Step 10/11 : WORKDIR /opt/guoliang
 ---> Running in 4b20d79d9224
Removing intermediate container 4b20d79d9224
 ---> 35d0b1963616
Step 11/11 : CMD pwd; ls
 ---> Running in 99722ead3b2f
Removing intermediate container 99722ead3b2f
 ---> 5d54e7feb994
Successfully built 5d54e7feb994
Successfully tagged centos:workdir
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:workdir
/opt/guoliang
index.tar.gz

举例8:USER

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/
COPY ./index.tar.gz /opt/guoliang/

WORKDIR /opt/guoliang
CMD pwd; ls

USER 1000
[root@k8s-master01 dockerfiles]# docker build -t centos:user .
Sending build context to Docker daemon  5.632kB
Step 1/12 : FROM centos
 ---> 5d0da3dc9764
Step 2/12 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/12 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/12 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/12 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/12 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/12 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/12 : ADD ./index.tar.gz /opt/
 ---> Using cache
 ---> 12a00abfa8bd
Step 9/12 : COPY ./index.tar.gz /opt/guoliang/
 ---> Using cache
 ---> 00d26becacce
Step 10/12 : WORKDIR /opt/guoliang
 ---> Using cache
 ---> 35d0b1963616
Step 11/12 : CMD pwd; ls
 ---> Using cache
 ---> 5d54e7feb994
Step 12/12 : USER 1000
 ---> Running in b67c15afbde6
Removing intermediate container b67c15afbde6
 ---> 133143caec08
Successfully built 133143caec08
Successfully tagged centos:user
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:user bash
[guoliang@48bc5b5db6d3 guoliang]$ whoami
guoliang

举例:VOLUME

vi /root/dockerfiles/Dockerfile
FROM centos

LABEL maintainer="test dockerfile"
LABEL test=dockerfile

ENV test_env1 env1
ENV test_env2 env2

RUN useradd guoliang
RUN mkdir /opt/guoliang

# RUN useradd guoliang && mkdir /opt/guoliang

#ENTRYPOINT ["echo"]

ADD ./index.tar.gz /opt/
COPY ./index.tar.gz /opt/guoliang/

WORKDIR /opt/guoliang
CMD pwd; ls

#USER 1000

VOLUME /data
[root@k8s-master01 dockerfiles]# docker build -t centos:volume .
Sending build context to Docker daemon  5.632kB
Step 1/12 : FROM centos
 ---> 5d0da3dc9764
Step 2/12 : LABEL maintainer="test dockerfile"
 ---> Using cache
 ---> 4d416c026780
Step 3/12 : LABEL test=dockerfile
 ---> Using cache
 ---> 786676f65452
Step 4/12 : ENV test_env1 env1
 ---> Using cache
 ---> c30055ed7393
Step 5/12 : ENV test_env2 env2
 ---> Using cache
 ---> c7f93a7f74b5
Step 6/12 : RUN useradd guoliang
 ---> Using cache
 ---> 6c4056e84b28
Step 7/12 : RUN mkdir /opt/guoliang
 ---> Using cache
 ---> 1848fe0e89de
Step 8/12 : ADD ./index.tar.gz /opt/
 ---> Using cache
 ---> 12a00abfa8bd
Step 9/12 : COPY ./index.tar.gz /opt/guoliang/
 ---> Using cache
 ---> 00d26becacce
Step 10/12 : WORKDIR /opt/guoliang
 ---> Using cache
 ---> 35d0b1963616
Step 11/12 : CMD pwd; ls
 ---> Using cache
 ---> 5d54e7feb994
Step 12/12 : VOLUME /data
 ---> Running in 3aec92ea0742
Removing intermediate container 3aec92ea0742
 ---> 26de69d82003
Successfully built 26de69d82003
Successfully tagged centos:volume
[root@k8s-master01 dockerfiles]# 
[root@k8s-master01 dockerfiles]# docker exec -it --rm centos:volume bash
unknown flag: --rm
See 'docker exec --help'.
[root@k8s-master01 dockerfiles]# docker run -it --rm centos:volume bash
[root@621e2e221dde guoliang]# 
[root@621e2e221dde guoliang]# cd /data
[root@621e2e221dde data]# ls
[root@621e2e221dde data]# touch 1 #此时在host主机的/var/lib/docker/volumes目录下可以找到创建的文件。如果容器退出,该内容会消失
[root@k8s-master01 ~]# docker run -it -v /root/mysql_data/:/data/ centos:volume bash
[root@cdfb2bb79d79 guoliang]# 
[root@cdfb2bb79d79 guoliang]# cd /data
[root@cdfb2bb79d79 data]# touch 123 #此时在host的/root/mysql_data目录下会出现创建的文件,容器退出后该文件内容不会丢失