xml地图|网站地图|网站标签 [设为首页] [加入收藏]

Docke镜像和仓库基础命令,通过编排管理

来源:http://www.ccidsi.com 作者:呼叫中心培训课程 人气:81 发布时间:2019-10-28
摘要:查阅完整的应用程序 在全数的微服务安排到位并且存有相关的毛豆都平常运维后,大家几近些日子将去通过shopfront 服务的 GUI 去拜访大家全体的应用程序。大家得以因此施行 minikube 命

查阅完整的应用程序

在全数的微服务安排到位并且存有相关的毛豆都平常运维后,大家几近些日子将去通过 shopfront 服务的 GUI 去拜访大家全体的应用程序。大家得以因此施行 minikube 命令在暗中同意浏览器中开荒这些服务:

  1. $ minikube service shopfront

生机勃勃旦一切平常,你将要浏览器中旁观如下的页面:

图片 1

 

10 用Dockerfile文件构建镜像

不推荐使用docker commit命令来创设镜像,通过Dockerfile文件和docker build命令更具可重复性、透明性和幂等性。

新建三个目录,并在该目录下新建一个 Dockerfile 文件:

    FROM ubuntu:14.04
    MAINTAINER CZ "895092337@qq.com"
    RUN apt-get update -yqq && apt-get install -y nginu
    RUN echo ‘Hi, I am in your container’ > /usr/share/nginx/html/index.html
    EXPOSE 80

EXPOSE钦赐对外表公开的端口。
利用docker build命令构建镜像。

sudo docker build -t="czzmm/static_web" .

查阅新的Docker镜像

sudo docker images czzmm/static_web

翻开镜疑似什么营造的:

sudo docker history czzmm/static_web

Power 服务器上的设置

完了以下步骤,以便在运作 Ubuntu LE 的 Power 服务器上运用 Swarm:
运维以下命令。

1
2
3
4
5
6
$ mkdir ~/go.prj
$ export GOPATH=~/go.prj
$ export PATH=$PATH:~/go.prj/bin
$ go get github.com/tools/godep
$ go get github.com/docker/swarm
swarm binary will be available under $GOPATH/bin/

营造剩下的应用程序

近年来,大家有二个容器已经运转,让大家来营造剩下的七个微服务应用程序和容器:

  1. $ cd..
  2. $ cd productcatalogue/
  3. $ mvn clean install
  4. $ docker build -t danielbryantuk/djproductcatalogue:1.0.
  5. ...
  6. $ docker push danielbryantuk/djproductcatalogue:1.0
  7. ...
  8. $ cd..
  9. $ cd stockmanager/
  10. $ mvn clean install
  11. ...
  12. $ docker build -t danielbryantuk/djstockmanager:1.0.
  13. ...
  14. $ docker push danielbryantuk/djstockmanager:1.0
  15. ...

以当时候, 大家早就创设了装有大家的微服务和血脉相近的 Docker 镜像,也推送镜像到 Docker Hub 上。今后,大家去在 Kubernetes 中安插 productcatalogue 和 stockmanager 服务。

 

7 检查新创设的镜像

sudo docker images czzmm/demo01

在 EvoqueHEL 7.1 LE 上安装二个 Kubernetes 集群

部署到 Kubernetes 上

今昔,让大家在 Kubernetes 中运作这些容器。首先,切换来品种根目录的 kubernetes 目录:

  1. $ cd../kubernetes

开发 Kubernetes 安顿文件 shopfront-service.yaml,并查看内容:

  1. ---
  2. apiVersion: v1
  3. kind:Service
  4. metadata:
  5. name: shopfront
  6. labels:
  7. app: shopfront
  8. spec:
  9. type:NodePort
  10. selector:
  11. app: shopfront
  12. ports:
  13. - protocol: TCP
  14. port:8010
  15. name: http
  16. ---
  17. apiVersion: v1
  18. kind:ReplicationController
  19. metadata:
  20. name: shopfront
  21. spec:
  22. replicas:1
  23. template:
  24. metadata:
  25. labels:
  26. app: shopfront
  27. spec:
  28. containers:
  29. - name: shopfront
  30. image: danielbryantuk/djshopfront:latest
  31. ports:
  32. - containerPort:8010
  33. livenessProbe:
  34. httpGet:
  35. path:/health
  36. port:8010
  37. initialDelaySeconds:30
  38. timeoutSeconds:1

以此 yaml 文件的率先节创造了贰个名称叫 “shopfront” 的劳务,它将到该服务(8010 端口)的 TCP 流量路由到标签为 “app: shopfront” 的豆荚中 。配置文件的第四节成立了两个 ReplicationController ,其打招呼 Kubernetes 去运营大家的 shopfront 容器的三个复制品(实例),它是大家标为 “app: shopfront” 的注明(spec)的风度翩翩局地。大家也钦赐了展露在大家的容器上的 8010 应用程序端口,并且评释了 “livenessProbe” (即健检),Kubernetes 能够用来去调节大家的器皿应用程序是不是准确运转并预备好采纳流量。让我们来运维 minikube 并配置那一个服务(注意,遵照你布置的机械上的可用能源,你也许必要去修 minikube 中的钦命使用的 CPU 和内部存款和储蓄器memory):

  1. $ minikube start --cpus 2--memory 4096
  2. StartinglocalKubernetes v1.7.5 cluster...
  3. Starting VM...
  4. Getting VM IP address...
  5. Moving files into cluster...
  6. Setting up certs...
  7. Connecting to cluster...
  8. Setting up kubeconfig...
  9. Starting cluster components...
  10. Kubectlis now configured to use the cluster.
  11. $ kubectl apply -f shopfront-service.yaml
  12. service "shopfront" created
  13. replicationcontroller "shopfront" created

您能够经过行使 kubectl get svc 命令查看 Kubernetes 中具备的服务。你也足以应用 kubectl get pods 命令去查看全部有关的扁豆(注意,你首先次推行 get pods 命令时,容器或许还向来不成立完毕,并被标识为未准备好):

  1. $ kubectl get svc
  2. NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. kubernetes 10.0.0.1<none>443/TCP 18h
  4. shopfront 10.0.0.216<nodes>8010:31208/TCP 12s
  5. $ kubectl get pods
  6. NAME READY STATUS RESTARTS AGE
  7. shopfront-0w1js0/1ContainerCreating018s
  8. $ kubectl get pods
  9. NAME READY STATUS RESTARTS AGE
  10. shopfront-0w1js1/1Running02m

咱俩后天生机勃勃度打响地在 Kubernetes 中布局到位了大家的率先个劳务。

 

Docke镜像和货栈基础命令

设置和安装 Kubernetes 节点(下属)

  1. 安装所需的包。

    1
    # yum install docker-io kubernetes-client kubernetes-node
  2. 安顿 Kubernetes 节点。依照条件来改良 /etc/kubernetes/ kubelet。基于上述新闻,校订的文本具备以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # kubernetes kubelet (minion) config
    # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
    KUBELET_ADDRESS="--address=0.0.0.0"
    # The port for the info server to serve on
    # KUBELET_PORT="--port=10250"
    # You may leave this blank to use the actual hostname
    KUBELET_HOSTNAME=" "
    # location of the api-server
    KUBELET_API_SERVER="--api-servers=http://192.168.122.76:8080"
    # Add your own!
    KUBELET_ARGS="—pod-infra-container-image=gcr.io/google_containers/pause-ppc64le:2.0"
  3. 起步服务。

    1
    2
    3
    4
    5
    # for SERVICES in kube-proxy kubelet docker; do
      systemctl restart $SERVICES
      systemctl enable $SERVICES
      systemctl status $SERVICES
    done
  4. 证实设置。登入到主节点并运营 kubectl get nodes 来检查可用节点。

    1
    2
    3
    [root@localhost ~]# kubectl get nodes
    NAME    LABELS                          STATUS AGE
    fed-node kubernetes.io/hostname=fed-node Ready  1h
  5. 从集群中的任何节点登陆到个人注册表,以得到注册表身份验证 config 文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # docker login https://registry-rhel71.kube.com:5000
    # cat /root/.docker/config.json
    {
        "auths": {
            "https://registry-rhel71.kube.com:5000": {
                "auth": "cHJhZGlwdGE6cHJhZGlwdGE=",
                "email": "test@test.com"
            }
    }

将此布局文件 (config.json) 复制到 Kubernetes 集群中的全数节点,方法是将其复制到路线 /root/.docker/config.json。该集群以后已安装为利用民用注册表服务器。

分布容器应用编写起步

13 删除Docker镜像

sudo docker rmi czzmm/static_web

 

更加多Docker相关教程见以下内容: 

Docker安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm 

Ubuntu 15.04下安装Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm 

Docker 创造基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm 

在 Ubuntu 15.04 上什么样设置Docker及着力用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Ubuntu 16.04上Docker使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm 

利用Docker分分钟开发银行常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm 

Ubuntu 16.04下Docker改革配置文件不见到效果化解办法  http://www.linuxidc.com/Linux/2017-05/143862.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

正文长久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149951.htm

图片 2

Docker 编排包蕴调治容器、管理集群和在 Docker 情状中购买更加的多主机。

创设 Java 应用程序和容器镜像

在大家发轫创办贰个器皿和血脉相通的 Kubernetes 安插安排从前,大家必得首先断定,大家曾经设置了下列必得的组件:

  • 适用于 Mac / Windows / Linux 的 Docker - 那允许你在地头机械上,在 Kubernetes 之外去创设、运维和测试Docker 容器。
  • Minikube - 那是叁个工具,它能够因此虚构机,在您本地计划的机械上超级轻巧地去运维多少个单节点的 Kubernetes 测量试验集群。
  • 一个 GitHub 帐户和本地安装的 Git - 示例代码保存在 GitHub 上,何况经过选取本地的 Git,你能够复刻该仓库,何况去付出修改到该应用程序的您和煦的副本中。
  • Docker Hub 帐户 - 即使你想跟着那篇教程进行,你将必要贰个 Docker Hub 帐户,以便推送和保存你就要背后创设的器皿镜像的正片。
  • Java 8 (或 9) SDK 和 Maven - 我们将动用 Maven 和从属的工具使用 Java 8 本性去营造代码。

从 GitHub 克隆项目库代码(可选,你能够复刻fork那么些库,并且克隆三个您个人的正片),找到 “shopfront” 微服务应用: 。

  1. $ gitclonegit@github.com:danielbryantuk/oreilly-docker-java-shopping.git
  2. $ cd oreilly-docker-java-shopping/shopfront

请加载 shopfront 代码到你筛选的编辑器中,比如,英特尔liJ IDE 或 Eclipse,并去商量它。让大家选拔 Maven 来创设应用程序。最终生成包括该行使的可运行的 JACR-V 文件位于 ./target 的目录中。

  1. $ mvn clean install
  2. [INFO]------------------------------------------------------------------------
  3. [INFO] BUILD SUCCESS
  4. [INFO]------------------------------------------------------------------------
  5. [INFO]Totaltime:17.210 s
  6. [INFO]Finished at:2017-09-30T11:28:37 01:00
  7. [INFO]FinalMemory:41M/328M
  8. [INFO]------------------------------------------------------------------------

前段时间,大家将创设 Docker 容器镜像。三个器皿镜像的操作系统接受、配置和构建步骤,平时情形下是透过一个Dockerfile 钦定的。大家看一下,我们的演示中位居 shopfront 目录中的 Dockerfile:

  1. FROM openjdk:8-jre
  2. ADD target/shopfront-0.0.1-SNAPSHOT.jar app.jar
  3. EXPOSE 8010
  4. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

先是行钦定了,大家的器皿镜像将被 “从from” 那个 openjdk:8-jre 基础镜像中创设。openjdk:8-jre 镜疑似由 OpenJDK 团队保卫安全的,况且满含了我们在 Docker 容器(就好像一个装置和布局了 OpenJDK 8 JDK的操作系统)中运维 Java 8 应用程序所急需的满贯事物。第二行是,将大家地点创设的可运维的 JA宝马X3“增加add” 到这么些镜像。第三行钦定了端口号是 8010,大家的应用程序就要此个端口号上监听,假诺外部要求能够访谈,必须要“暴光exposed” 它,第四行钦命 “入口entrypoint” ,即当容器早先化后去运维的一声令下。今后,咱们来营造我们的容器:

  1. $ docker build -t danielbryantuk/djshopfront:1.0.
  2. Successfully built 87b8c5aa5260
  3. Successfully tagged danielbryantuk/djshopfront:1.0

现行反革命,大家推送它到 Docker Hub。倘若您从未经过命令行登陆到 Docker Hub,以往去登陆,输入你的客户名和密码:

  1. $ docker login
  2. Loginwith your Docker ID to push and pull images fromDockerHub.If you don't have a Docker ID, head over to https://hub.docker.com to create one.
  3. Username:
  4. Password:
  5. Login Succeeded
  6. $
  7. $ docker push danielbryantuk/djshopfront:1.0
  8. The push refers to a repository [docker.io/danielbryantuk/djshopfront]
  9. 9b19f75e8748: Pushed
  10. ...
  11. cf4ecb492384: Pushed
  12. 1.0: digest: sha256:8a6b459b0210409e67bee29d25bb512344045bd84a262ede80777edfcff3d9a0 size: 2210

 

4 查找docker镜像

sudo docker search image_name

回去以下音讯:

  • 仓库名
  • 镜像描述
  • 客户评价(Stars)
  • 是还是不是合法(Official)
  • 自行营造(Automated)

设置和装置 Kubernetes 主节点

  1. 设置所需的包。

    # yum install kubernetes-client kubernetes-master etcd
  2. 打开 Network Ports。暗中认可意况下,kubernetes api 服务器在端口 8080 上监听 kubelets。确定保障它未被地方防火墙拦截。假设采取了防火墙,可运营以下命令来开拓贰个对准公共区域的 TCP 端口。

    1
    2
    # firewall-cmd --zone=public --add-port=8080/tcp --permanent
    # firewall-cmd --reload
此外,etcd 服务器默认情况下在端口 2379
上执行监听。按照以下说明打开相应的端口:
<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<tbody>
<tr class="odd">
<td><div class="line number1 index0 alt2">
1
</div>
<div class="line number2 index1 alt1">
2
</div></td>
<td><div class="container">
<div class="line number1 index0 alt2">
<code class="htmlscript plain"># firewall-cmd --zone=public --add-port=2379/tcp --permanent</code>
</div>
<div class="line number2 index1 alt1">
<code class="htmlscript plain"># firewall-cmd –reload</code>
</div>
</div></td>
</tr>
</tbody>
</table>
  1. 布局 Kubernetes 主节点。对于剩余配置步骤,假若 Kubernetes 主节点有所 IP 地址 192.168.122.76,Kubernetes 节点具有 IP 地址 192.168.122.236。
    根据条件来更改 /etc/kubernetes/config 文件。基于上述音信,改过的文件具备以下内容:
    1
    2
    3
    4
    5
    6
    7
    # logging to stderr means we get it in the systemd journal                                                                                    KUBE_LOGTOSTDERR="--logtostderr=true"
    # journal message level, 0 is debug
    KUBE_LOG_LEVEL="--v=0"
    # Should this cluster be allowed to run privileged docker containers
    KUBE_ALLOW_PRIV="--allow-privileged=false"
    # How the controller-manager, scheduler, and proxy find the apiserver
    KUBE_MASTER="--master=http://192.168.122.76:8080"
根据环境来修改 **/etc/kubernetes/apiserver**
文件。基于上述信息,修改的文件具有以下内容:
<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<tbody>
<tr class="odd">
<td><div class="line number1 index0 alt2">
1
</div>
<div class="line number2 index1 alt1">
2
</div>
<div class="line number3 index2 alt2">
3
</div>
<div class="line number4 index3 alt1">
4
</div>
<div class="line number5 index4 alt2">
5
</div>
<div class="line number6 index5 alt1">
6
</div>
<div class="line number7 index6 alt2">
7
</div>
<div class="line number8 index7 alt1">
8
</div>
<div class="line number9 index8 alt2">
9
</div>
<div class="line number10 index9 alt1">
10
</div>
<div class="line number11 index10 alt2">
11
</div>
<div class="line number12 index11 alt1">
12
</div>
<div class="line number13 index12 alt2">
13
</div>
<div class="line number14 index13 alt1">
14
</div></td>
<td><div class="container">
<div class="line number1 index0 alt2">
<code class="htmlscript plain"># The address on the local server to listen to.</code>
</div>
<div class="line number2 index1 alt1">
<code class="htmlscript plain">KUBE_API_ADDRESS=&quot;--address=0.0.0.0&quot;</code>
</div>
<div class="line number3 index2 alt2">
<code class="htmlscript plain"># The port on the  local server to listen on.</code>
</div>
<div class="line number4 index3 alt1">
<code class="htmlscript plain"># KUBE_API_PORT=&quot;--port=8080”</code>
</div>
<div class="line number5 index4 alt2">
<code class="htmlscript plain"># Port minions listen on</code>
</div>
<div class="line number6 index5 alt1">
<code class="htmlscript plain"># KUBELET_PORT=&quot;--kubelet-port=10250&quot;</code>
</div>
<div class="line number7 index6 alt2">
<code class="htmlscript plain">#  Comma separated list of nodes in the etcd cluster</code>
</div>
<div class="line number8 index7 alt1">
<code class="htmlscript plain">KUBE_ETCD_SERVERS=&quot;--etcd-servers=http://192.168.122.76:2379&quot;</code>
</div>
<div class="line number9 index8 alt2">
<code class="htmlscript plain"># Address range to use for services</code>
</div>
<div class="line number10 index9 alt1">
<code class="htmlscript plain">KUBE_SERVICE_ADDRESSES=&quot;--service-cluster-ip-range=10.254.0.0/16&quot;</code>
</div>
<div class="line number11 index10 alt2">
<code class="htmlscript plain"># default admission control policies</code>
</div>
<div class="line number12 index11 alt1">
<code class="htmlscript plain">KUBE_ADMISSION_CONTROL=&quot;--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota&quot;</code>
</div>
<div class="line number13 index12 alt2">
<code class="htmlscript plain"># Add your own!</code>
</div>
<div class="line number14 index13 alt1">
<code class="htmlscript plain">KUBE_API_ARGS=&quot;&quot;</code>
</div>
</div></td>
</tr>
</tbody>
</table>
  1. 配置 Etcd。修改 /etc/etcd/etcd.conf 文件中的以下七个参数,如下所述:

    1
    2
    ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
    ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
  2. 启航服务。

    1
    2
    3
    4
    5
    # for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
        systemctl restart $SERVICES
        systemctl enable $SERVICES
        systemctl status $SERVICES
    done

本文由68399皇家赌场发布于呼叫中心培训课程,转载请注明出处:Docke镜像和仓库基础命令,通过编排管理

关键词: 68399皇家赌场

最火资讯