没有合适的资源?快使用搜索试试~ 我知道了~
Docker 及 Kubernetes 基础.pdf
0 下载量 93 浏览量
2024-07-03
09:14:38
上传
评论
收藏 926KB PDF 举报
温馨提示
试读
89页
k8s
资源推荐
资源详情
资源评论
第
2
章
Docker 及 Kubernetes 基础
上一章主要讲解了 Kubernetes 各种版本的安装方式,相信读者已经有了一套高可用 Kubernetes
集群了,并且也对 Kubernetes 的架构和各种组件有了一些认识。本章主要讲解 Docker 和 Kubernetes
的一些基本概念和简单操作,基于上一章搭建的集群来学习本章内容会让自己印象更加深刻。
2.1 Docker
基础
2.1.1 Docker 介绍
Docker 是一个开源的软件项目,在 Linux 操作系统上,Docker 提供了一个额外的软件抽象层
及操作系统层虚拟化的自动管理机制。Docker 运行名为“Container(容器)”的软件包,容器之
间彼此隔离,并 捆绑了自己的应用程序、工具、库和配置文件。所有容器都由单个操作系统内核运
行,因此比虚拟机更轻量级。
Docker 利用 Linux 资源分离机制,例如 cgroups 及 Linux Namespace 来创建相互独立的容器
(Container),可以在单个 Linux 实体下运行,避免了启动一个
虚拟机造成的额外负担。Linux 核
心对 Namespace(命名空间)的支持完全隔离了不同 Namespace 下的应用程序的“视野”(即作用
范围),包括进程树、网络、用户 ID 与挂载的文件系统等,而核心 cgroups 则提供了资源隔离,
包括 CPU、存储器、Block I/O 与网络。
2.1.2 Docker 基本命令
本节介绍 Docker 的一些常用命令,这些命令有助于读者排查和解决集群中的问题。
查看 Docker 版本。包括 Docker 版本号、API 版本号、Git Commit、Go 版本号等。
[root@K8S-master01 ~]# docker version
第 2 章 Docker 及 Kubernetes 基础
|
53
Client:
Version: 17.09.1-ce
API version: 1.32
Go version: go1.8.3
Git commit: 19e2cf6
Built: Thu Dec 7 22:23:40 2017
OS/Arch: linux/amd64
Server:
Version: 17.09.1-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: 19e2cf6
Built: Thu Dec 7 22:25:03 2017
OS/Arch: linux/amd64
Experimental: false
显示 Docker 信息:
Containers: 22
Running: 21
Paused: 0
Stopped: 1
Images: 18
Server Version: 17.09.1-ce
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.18.9-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.848GiB
Name: K8S-master01
ID: HM66:LH4K:PNES:GFJX:TKNX:TLOH:WONE:KLHT:YRB3:3KAR:3WZJ:HYOX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
54
|
再也不踩坑的 Kubernetes 实战指南
Debug Mode (server): false
Username: dotbalo
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
查询镜像。OFFICIAL 为 OK 的是官方镜像,默认搜索的是 hub.docker.com。
[root@K8S-master01 ~]# docker search nginx
NAME DESCRIPTION
STARS OFFICIAL AUTOMATED
nginx Official build of Nginx.
10749 [OK]
jwilder/nginx-proxy Automated Nginx reverse
proxy for docker c... 1507 [OK]
richarvey/nginx-php-fpm Container running Nginx +
PHP-FPM capable ... 675 [OK]
jrcs/letsencrypt-nginx-proxy-companion LetsEncrypt container
to use with nginx as... 469 [OK]
webdevops/php-nginx Nginx with PHP-FPM
120 [OK]
kitematic/hello-world-nginx A light-weight nginx
container that demons... 119
zabbix/zabbix-web-nginx-mysql Zabbix frontend based on
Nginx web-server ... 86 [OK]
bitnami/nginx Bitnami nginx Docker Image
60 [OK]
linuxserver/nginx An Nginx container, brought
to you by Linu... 51
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5
ubuntu-16-nginx-php-phpmyadmin-mysql-5 48
[OK]
tobi312/rpi-nginx NGINX on Raspberry Pi / armhf
23 [OK]
nginx/nginx-ingress NGINX Ingress Controller
for Kubernetes 15
blacklabelops/nginx Dockerized Nginx Reverse
Proxy Server. 12 [OK]
wodby/drupal-nginx Nginx for Drupal container
image 11 [OK]
centos/nginx-18-centos7 Platform for running nginx
1.8 or building... 10
nginxdemos/hello NGINX webserver that serves
a simple page ... 9 [OK]
webdevops/nginx Nginx container
8 [OK]
centos/nginx-112-centos7 Platform for running nginx
1.12 or buildin... 6
1science/nginx Nginx Docker images that
include Consul Te... 4 [OK]
travix/nginx NGinx reverse proxy
2 [OK]
mailu/nginx Mailu nginx frontend
第 2 章 Docker 及 Kubernetes 基础
|
55
2 [OK]
pebbletech/nginx-proxy nginx-proxy sets up a
container running ng... 2 [OK]
toccoag/openshift-nginx Nginx reverse proxy for
Nice running on sa... 1 [OK]
ansibleplaybookbundle/nginx-apb An APB to deploy NGINX
0 [OK]
wodby/nginx Generic nginx
拉取/下载镜像。默认是 hub.docker.com(docker.io)上面的镜像,如果拉取公司内部的镜像或
者其他仓库上的镜像,需要在镜像前面加上仓库的 URL,如:
docker pull harbor.xxx.net/frontend:v1
拉取公网上的 Nginx 镜像:
# 把公网上的镜像拉取到本地服务器,不指定版本号为 latest
[root@K8S-master01 ~]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest:
sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Image is up to date for nginx:latest
#拉取指定版本
[root@K8S-master01 ~]# docker pull nginx:1.15
1.15: Pulling from library/nginx
Digest:
sha256:b543f6d0983fbc25b9874e22f4fe257a567111da96fd1d8f1b44315f1236398c
Status: Downloaded newer image for nginx:1.15
推送镜像。把本地的镜像推送到公网仓库中,或者公司内部的仓库中。
默认登录和推送的是公网的镜像,如果需要推送到公司仓库或者其他仓库,只需要在镜像前
面使用 tag 并加上 URL 即可:
[root@K8S-master01 ~]# docker images | grep nginx-v2
nginx-v2 latest
3d9c6e44d3db 3 hours ago 109MB
[root@K8S-master01 ~]# docker tag nginx-v2 dotbalo/nginx-v2:test
[root@K8S-master01 ~]# docker images | grep nginx-v2
dotbalo/nginx-v2 test
3d9c6e44d3db 3 hours ago 109MB
nginx-v2 latest
3d9c6e44d3db 3 hours ago 109MB
[root@K8S-master01 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't
have a Docker ID, head over to https://hub.docker.com to create one.
Username (dotbalo): dotbalo
Password:
Login Succeeded
[root@K8S-master01 ~]# docker push dotbalo/nginx-v2:test
The push refers to a repository [docker.io/dotbalo/nginx-v2]
2eaa7b5717a2: Mounted from dotbalo/nginx
a674e06ede38: Mounted from dotbalo/nginx
b7efe781401d: Mounted from dotbalo/nginx
56
|
再也不踩坑的 Kubernetes 实战指南
c9c2a3696080: Mounted from dotbalo/nginx
7b4e562e58dc: Mounted from dotbalo/nginx
test: digest:
sha256:5d749d2b10150426b510d2c3a05a99cf547c2ca1be382e1dbb2f90b68b6bea96 size:
1362
前台启动一个容器:
[root@DockerTestServer ~]# docker run -ti nginx bash
root@23bc7ccabb09:/#
后台启动:
[root@DockerTestServer ~]# docker run -tid nginx bash
1bcf5154d5c3a57d92a6796f526eac2cefd962aaca9cf4098689bfe830bb9e5e
端口映射。可以将本机的端口映射到容器的端口,比如将本机的 1111 端口映射到容器的 80
端口:
[root@DockerTestServer ~]# docker run -ti -p 1111:80 nginx bash
root@cd676d572188:/#
挂载卷。可以将本机的目录挂载到容器的指定目录,比如将 hosts 文件挂载到容器的 hosts:
[root@DockerTestServer ~]# docker run -ti -p 1111:80 -v /etc/hosts:/etc/hosts
nginx bash
root@cd676d572188:/#
查看当前正在运行的容器:
[root@K8S-master01 K8S-ha-install]# docker ps
CONTAINER ID IMAGE
COMMAND CREATED STATUS PORTS
NAMES
862e82066496 94ec7e53edfc
"nginx -g 'daemon ..." 21 hours ago Up 21 hours
K8S_nginx_nginx-deployment-57895845b8-vb7bs_default_d0d254f8-1fb3-11e9-a9f2-00
0c293ad492_1
10bf838e18d0
registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1 "/pause"
21 hours ago Up 21 hours
K8S_POD_nginx-deployment-57895845b8-vb7bs_default_d0d254f8-1fb3-11e9-a9f2-000c
293ad492_1
查看所有容器,包括已经退出的:
[root@K8S-master01 K8S-ha-install]# docker ps -a
查看正在运行的容器(即显示出容器的 ID):
[root@K8S-master01 K8S-ha-install]# docker ps -q
……
0d1a98b3c402
c1fd8ff1f7f2
86b1c069024b
……
查看所有容器的 ID,包括已经退出的:
剩余88页未读,继续阅读
资源评论
colin工作室
- 粉丝: 983
- 资源: 217
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功