视频来源: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目录下会出现创建的文件,容器退出后该文件内容不会丢失