在这里,我们将给大家分享关于Openshift-我可以使用Openshift运行docker客户端命令的知识,让您更了解例如dockerpush吗?的本质,同时也会涉及到如何更有效地Docker–Op
在这里,我们将给大家分享关于Openshift-我可以使用Openshift运行docker客户端命令的知识,让您更了解例如docker push吗?的本质,同时也会涉及到如何更有效地Docker – OpenShift V3与OpenShift V2、docker – 找不到openshift v3 pod文件、docker与openshift相比如何?、Docker搭建openstack swift的内容。
本文目录一览:- Openshift-我可以使用Openshift运行docker客户端命令(例如docker push)吗?(docker openssl)
- Docker – OpenShift V3与OpenShift V2
- docker – 找不到openshift v3 pod文件
- docker与openshift相比如何?
- Docker搭建openstack swift
Openshift-我可以使用Openshift运行docker客户端命令(例如docker push)吗?(docker openssl)
当您拥有Docker主机时,使用Docker很容易。您将Docker客户端与Docker主机(引擎)连接起来。然后,在Jenkins构建服务器上构建和部署(复杂)docker映像的过程类似于以下一系列命令:
- Maven全新安装=>构建您的WAR文件
- Docker build =>创建一个带有WAR应用程序文件的Wildfly映像
- Docker标记=>标记新映像
- Docker push =>将映像推送到docker hub
- Docker run ==>在docker主机上安装并运行docker镜像。
Openshift Starter可以这样工作吗?答案:是的,此容器即服务(CAAS)选项是可能的。
完整的解决方案:
在下面的步骤中,我创建一个由2个图像组成的项目:MySql和由Wildfly服务器托管的SpringBoot / Angular /
Hibernate。当然,这也适用于Spring Boot JAR应用程序。
您从本地运行的Docker守护程序开始。我是通过Docker Quickstart Terminal执行此操作的。我仅将minishift用于本地测试-
在这种情况下不使用。
步骤1 :创建一个项目和1个MySql应用程序。
无需docker即可通过Openshift Web控制台完成此操作。您也可以使用oc new-proect命令。
步骤2 :登录openshift项目。在在线控制台中,单击顶部栏(右侧)上的问号。选择“命令行工具”。您可以通过右侧的图标将登录命令复制到剪贴板。
$ oc login等…(第一个剪贴板图标,粘贴整个命令)。
步骤3 :登录到您的Docker注册表。在这种情况下,请检查openshift在线控制台。
$ docker login -uoc whoami
-poc whoami --show-token
registry.pro-us-
east-1.openshift.com
注意:请勿将端口号用作后缀openshift:443!
步骤4: 在本地或在构建服务器上(使用Jenkins)构建并标记映像。
$ mvn clean install-创建war文件。您可以将其称为“ ROOT.war”。
$ docker build -t myproject / mynewapplication:latest。
$ docker标签myproject / mynewapplication Registry.pro-us-
east-1.openshift.com/myproject/mynewapplication
如果您输入的名称不正确,一会儿您将无法推送图像。所以不要(!)写pro-us-east1。它是pro-us-east-1,等等。
Dockerfile位于Maven项目文件夹中。dockerfile可能看起来像:
FROM jboss/wildflyCOPY target/ROOT.war /opt/jboss/wildfly/standalone/deployments/# CMD - use the default wildfly default start command
内存效率更高的方法是:
FROM openjdk:8-jdk-alpineENV JAVA_APP_JAR your.jarENV AB_OFF trueEXPOSE 8080ADD target/$JAVA_APP_JAR /deployments/CMD ["java","-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-jar","/deployments/your.jar"]
最后的设置将极大地改善/平衡您的内存使用情况。就我而言,将运行中的容器从600MB +减少到大约300MB可以正常运行!
步骤5 :将映像推送到内部Openshift存储库
$ docker push Registry.pro-us-east-1.openshift.com/myproject/mynewapplication
步骤6-A.1 :通过new-app命令从现有docker映像创建应用程序。仅在创建应用程序时第一次执行此操作。
$ oc new-app mynewapplication
->在“ mynewapplication”标签的“ latest”标签下的“ myproject / mynewapplication”图像流中找到图像1233123223(大约一个小时)...此映像将部署在部署配置“ mynewapplication”中->创建资源... 创建了deploymentconfig“ mynewapplication” 服务“ mynewapplication”已创建->成功 运行“ oc status”以查看您的应用。
步骤6-A.2 :有关初始化设置,请参见下文。部署应用程序/
Web服务器时,创建一个“路由”,以便客户端可以访问该应用程序。由于必须执行一次,因此通过控制台(应用程序>路由)进行设置是一个很好的选择。示例:使用标准证书使您的网站仅可用于https:(1)使用目标端口8080(运行HTTP服务器的位置),(2)选中“安全路由”选项,(3)保持TLS终止为Edge。(4)对于不安全的流量,请选择“重定向”选项并…创建您的路线。稍等片刻,您就有一个HTTPS站点。
步骤6-B :更新图像时:推送现有图像时,将不会自动重新部署。您可以通过在线控制台或通过以下命令开始新的部署:
$ oc推出最新dc / mynewapplication -n myproject
要检查部署结果:
$ oc状态
要检查例如MySql容器是否正在运行:
$ oc获取豆荚
获取Mysql容器的名称。
$ oc rsh容器名称
然后,您将看到您是否真的可以访问数据库。
备注 :使用Openshift Starter / Original的 备注
:很高兴Openshift允许我们尝试免费的Starter版本。当然,对资源的使用有一系列限制。注意将“部署”策略设置为“重新创建”。“滚动”策略当然更好,但会消耗更多资源。我将MySql映像的资源大小通常设置为420Mi,而Wildfly映像的资源大小设置为600Mi。欢迎提出建议!
答案1
小编典典您可以登录OpenShift的内部图像注册表,然后将图像直接推送到其中。您需要先标记图像,使其与推送图像的项目名称匹配。有关更多详细信息,请参见:
- http://cookbook.openshift.org/image-registry-and-image-streams/how-do-i-push-an-image-to-the-internal-image-registry.html
一旦推送到内部映像注册表,您就可以使用oc new-app
或Web控制台从该映像进行部署。
Docker – OpenShift V3与OpenShift V2
我正在寻找OpenShift V3和V2之间的主要区别.
OpenShift V2是这样工作的吗?:https://www.openshift.com/walkthrough/how-it-works
Docker和Kubernetes在V3中如何工作?
有人可以给我一个关于OpenShift V2和V3的建立的清晰解释
有很多关键概念发生了变化.这些是最重要的,您需要一些时间才能进入,但它们对OpenShift v2有很大的改进:
>墨盒与Docker容器
> Gears vs. Kubernetes Pods
>经纪与库伯纳斯大师
>发布Red Hat Enterprise Linux Atomic
Host
当你学习下面的链接时,你会明白,OpenShift v3基本上与v2,除了名称,标识和PaaS的焦点基本上没有任何关系.但它仍然是一个伟大的工具,海事组织已经在PaaS世界中制定了新的标准. (不,我不为RedHat工作)
什么是新的:
https://docs.openshift.com/enterprise/3.0/whats_new/overview.html
https://docs.openshift.com/enterprise/3.0/architecture/overview.html
对于初学者; Docker& Kubernetes:
https://blog.openshift.com/openshift-v3-platform-combines-docker-kubernetes-atomic-and-more/
漂亮新:
Creating a Kubernetes Cluster to Run Docker Formatted Container Images
EDIT 2016_06_30:
对不起,坏死这个老帖子,但我想添加这个快速,有趣和非常翔实的视频关于Kubernetes:https://youtu.be/4ht22ReBjno
docker – 找不到openshift v3 pod文件
我正在测试Openshift Origin v3.我按照说明将它安装为docker容器.我还在角色/ openshift_examples / files / examples / image-streams / image-streams-centos7.json中部署了所有流.
我现在通过从Github部署虚拟PHP应用程序来测试安装.我能够创建项目和应用程序.但是,构建处于“待定”状态.在事件选项卡中,我看到很多类似这样的消息:
"Unable to mount volumes for pod "hello-world-1-build_PHP1":
IsLikelyNotMountPoint("/var/lib/origin/openshift.local.volumes/pods/9377d3b4-9887-
11e5-81fe-00215abe5482/volumes/kubernetes.io~secret/builder-dockercfg-x2ijq-
push"): file does not exist (5 times in the last 40 seconds)"
我也尝试使用java应用程序和tomcat docker镜像,但得到了相同的错误消息.看起来像Kubernetes配置问题.
有任何想法吗?
谢谢你的帮助
UPDATE1:
来自原始容器的日志显示有关错误的更多信息:
Unable to mount volumes for pod "deployment-example-2-deploy_test1": IsLikelyNotMountPoint("/var/lib/origin/openshift.local.volumes/pods/70f69f8c-98d3-11e5-8d98-00215abe5482/volumes/kubernetes.io~secret/deployer-token-8cfv8"): file does not exist; skipping pod
E1202 09:12:24.269145 4396 pod_workers.go:113] Error syncing pod 70f69f8c-98d3-11e5-8d98-00215abe5482,skipping: IsLikelyNotMountPoint("/var/lib/origin/openshift.local.volumes/pods/70f69f8c-98d3-11e5-8d98-00215abe5482/volumes/kubernetes.io~secret/deployer-token-8cfv8"): file does not exist
W1202 09:12:34.229374 4396 kubelet.go:1690] Orphaned volume "ac11a2b5-9880-11e5-81fe-00215abe5482/builder-dockercfg-va0cl-push" found,tearing down volume
E1202 09:12:34.287847 4396 kubelet.go:1696] Could not tear down volume "ac11a2b5-9880-11e5-81fe-00215abe5482/builder-dockercfg-va0cl-push": IsLikelyNotMountPoint("/var/lib/origin/openshift.local.volumes/pods/ac11a2b5-9880-11e5-81fe-00215abe5482/volumes/kubernetes.io~secret/builder-dockercfg-va0cl-push"): file does not exist
原始容器开头的日志条目:
202 09:12:13.992293 4396 start_master.go:278] assetConfig.loggingPublicURL: invalid value '',Details: required to view aggregated container logs in the console
W1202 09:12:13.992442 4396 start_master.go:278] assetConfig.metricsPublicURL: invalid value '',Details: required to view cluster metrics in the console
I1202 09:12:14.784026 4396 plugins.go:71] No cloud provider specified.
I1202 09:12:14.981775 4396 start_master.go:388] Starting master on 0.0.0.0:8443 (v1.1-270-ge592c18)
I1202 09:12:14.981825 4396 start_master.go:389] Public master address is https://192.168.178.55:8443
I1202 09:12:14.981855 4396 start_master.go:393] Using images from "openshift/origin-Vote from 2041635cb479cd3a at term 3
2015-12-02 09:12:17.009995 I | raft: 2041635cb479cd3a became leader at term 3
2015-12-02 09:12:17.010011 I | raft: raft.node: 2041635cb479cd3a elected leader 2041635cb479cd3a at term 3
2015-12-02 09:12:17.059445 I | etcdserver: published {Name:openshift.local ClientURLs:[https://192.168.178.55:4001]} to cluster 6a5d0422e654089a
W1202 09:12:17.111262 4396 controller.go:290] Resetting endpoints for master service "kubernetes" to &{{ } {kubernetes default c10e12cf-98d0-11e5-8d98-00215abe5482 8 0 2015-12-02 08:43:26 +0000 UTC Now as a timestamp.
I1202 09:12:21.944570 4396 event.go:216] Event(api.ObjectReference{Kind:"Node",Namespace:"",Name:"intweb3",UID:"intweb3",APIVersion:"",ResourceVersion:"",Fieldpath:""}): reason: 'Registerednode' Node intweb3 event: Registered Node intweb3 in NodeController
I1202 09:12:22.662116 4396 start_node.go:179] Starting a node connected to https://192.168.178.55:8443
I1202 09:12:22.670163 4396 plugins.go:71] No cloud provider specified.
I1202 09:12:22.670239 4396 start_node.go:284] Starting node intweb3 (v1.1-270-ge592c18)
W1202 09:12:22.681308 4396 node.go:121] Error running 'chcon' to set the kubelet volume root directory SELinux context: exit status 1
I1202 09:12:22.698136 4396 node.go:56] Connecting to Docker at unix:///var/run/docker.sock
I1202 09:12:22.717904 4396 manager.go:128] cAdvisor running in container: "/docker/f80b92397b6eb9052cf318d7225d21eb66941fcb333f16fe2b0330af629f73dd"
I1202 09:12:22.932096 4396 fs.go:108] Filesystem partitions: map[/dev/sda1:{mountpoint:/rootfs/boot major:8 minor:1 fsType: blockSize:0} /dev/mapper/intweb3--vg-root:{mountpoint:/rootfs major:252 minor:0 fsType: blockSize:0}]
I1202 09:12:22.949204 4396 node.go:251] Started Kubernetes Proxy on 0.0.0.0
I1202 09:12:22.974678 4396 start_master.go:582] Started Origin Controllers
I1202 09:12:22.999204 4396 machine.go:48] Couldn't collect info from any of the files in "/etc/machine-id,/var/lib/dbus/machine-id"
I1202 09:12:22.999311 4396 manager.go:163] Machine: {NumCores:2 cpuFrequency:2667000 MemoryCapacity:1010421760 MachineID: SystemUUID:26A5835E-1781-DD11-BBDA-5ABE54820021 BootID:6cbd9dcc-5d4d-414d-96e7-c8a41de013f7 Filesystems:[{Device:/dev/mapper/intweb3--vg-root Capacity:156112113664} {Device:/dev/sda1 Capacity:246755328}] diskMap:map[252:0:{Name:dm-0 Major:252 Minor:0 Size:158737629184 Scheduler:none} 252:1:{Name:dm-1 Major:252 Minor:1 Size:1044381696 Scheduler:none} 8:0:{Name:sda Major:8 Minor:0 Size:160041885696 Scheduler:deadline}] NetworkDevices:[{Name:eth0 MacAddress:00:21:5a:be:54:82 Speed:1000 Mtu:1500}] Topology:[{Id:0 Memory:1010421760 Cores:[{Id:0 Threads:[0] Caches:[{Size:32768 Type:Data Level:1} {Size:32768 Type:Instruction Level:1}]} {Id:1 Threads:[1] Caches:[{Size:32768 Type:Data Level:1} {Size:32768 Type:Instruction Level:1}]}] Caches:[]}] CloudProvider:UnkNown InstanceType:UnkNown}
I1202 09:12:23.010686 4396 manager.go:169] Version: {KernelVersion:3.19.0-25-generic ContainerOsversion:CentOS Linux 7 (Core) DockerVersion:1.9.1 CadvisorVersion: CadvisorRevision:}
I1202 09:12:23.011734 4396 server.go:820] Watching apiserver
I1202 09:12:23.253556 4396 manager.go:191] Setting dockerRoot to /var/lib/docker
I1202 09:12:23.270558 4396 plugins.go:56] Registering credential provider: .dockercfg
I1202 09:12:23.363525 4396 server.go:779] Started kubelet
E1202 09:12:23.363724 4396 kubelet.go:812] Image garbage collection Failed: unable to find data for container /
I1202 09:12:23.370771 4396 kubelet.go:833] Running in container "/kubelet"
I1202 09:12:23.370860 4396 server.go:104] Starting to listen on 0.0.0.0:10250
I1202 09:12:23.734095 4396 trace.go:57] Trace "decodeNodeList *[]api.imagestream" (started 2015-12-02 09:12:23.154869743 +0000 UTC):
[579.19167ms] [579.19167ms] Decoded 1 nodes
[579.193136ms] [1.466µs] END
I1202 09:12:23.734149 4396 trace.go:57] Trace "decodeNodeList *[]api.imagestream" (started 2015-12-02 09:12:23.154865413 +0000 UTC):
[3.352µs] [3.352µs] Decoding dir /openshift.io/imagestreams/test1 START
[579.252571ms] [579.249219ms] Decoding dir /openshift.io/imagestreams/test1 END
[579.255504ms] [2.933µs] Decoded 1 nodes
[579.257181ms] [1.677µs] END
I1202 09:12:23.734204 4396 trace.go:57] Trace "List *api.imagestreamList" (started 2015-12-02 09:12:23.001854335 +0000 UTC):
[1.676µs] [1.676µs] About to list directory
[732.327694ms] [732.326018ms] List extracted
[732.330138ms] [2.444µs] END
I1202 09:12:23.773150 4396 factory.go:236] Registering Docker factory
I1202 09:12:23.779446 4396 factory.go:93] Registering Raw factory
I1202 09:12:24.069082 4396 manager.go:1006] Started watching for new ooms in manager
I1202 09:12:24.074624 4396 oomparser.go:183] oomparser using systemd
I1202 09:12:24.111389 4396 kubelet.go:944] Node intweb3 was prevIoUsly registered
I1202 09:12:24.112362 4396 manager.go:250] Starting recovery of all containers
I1202 09:12:24.166309 4396 trace.go:57] Trace "decodeNodeList *[]api.imagestream" (started 2015-12-02 09:12:23.155013407 +0000 UTC):
[1.011259672s] [1.011259672s] Decoded 1 nodes
[1.011261767s] [2.095µs] END
I1202 09:12:24.166422 4396 trace.go:57] Trace "decodeNodeList *[]api.imagestream" (started 2015-12-02 09:12:23.155011032 +0000 UTC):
[1.327µs] [1.327µs] Decoding dir /openshift.io/imagestreams/test1 START
[1.01138385s] [1.011382523s] Decoding dir /openshift.io/imagestreams/test1 END
[1.011386853s] [3.003µs] Decoded 1 nodes
[1.01138839s] [1.537µs] END
I1202 09:12:24.166561 4396 trace.go:57] Trace "List *api.imagestreamList" (started 2015-12-02 09:12:23.002949866 +0000 UTC):
[3.142µs] [3.142µs] About to list etcd node
[152.060049ms] [152.056907ms] Etcd node listed
[1.163577016s] [1.011516967s] Node list decoded
[1.163587911s] [10.895µs] END
I1202 09:12:24.166656 4396 trace.go:57] Trace "List *api.imagestreamList" (started 2015-12-02 09:12:23.002947281 +0000 UTC):
[1.188µs] [1.188µs] About to list directory
[1.16368555s] [1.163684362s] List extracted
[1.163687576s] [2.026µs] END
I1202 09:12:24.196265 4396 manager.go:255] Recovery completed
I1202 09:12:24.215711 4396 manager.go:118] Starting to sync pod status with apiserver
I1202 09:12:24.215792 4396 kubelet.go:2056] Starting kubelet main sync loop.
UPDATE2
$sudo docker -v
Docker version 1.9.1,build a34a1d5
$cat /etc/*release*
disTRIB_ID=Ubuntu
disTRIB_RELEASE=14.04
disTRIB_CODENAME=trusty
disTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
NAME="Ubuntu"
VERSION="14.04.3 LTS,Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
@Clayton:你能分享一下有关应该在1.10修复的挂载错误的链接吗?谢谢!
docker与openshift相比如何?
如何解决docker与openshift相比如何??
主要区别在于,Docker作为一个项目仅专注于运行时容器,而OpenShift(作为系统)既包含运行时容器也包括REST API,协调和Web界面,以部署和管理各个容器。
仅比较运行时容器,OpenShift和Docker都使用内核隔离功能将租户进程分开。对于主要通过LXC实现的Docker和主要通过SELinux和多类别安全性(MCS)的OpenShift。两者都使用cgroup限制租户的cpu,内存和IO。上游OpenShift正在寻找LXC以减少长期工作。
Docker使用AUFS进行高级磁盘和写时文件复制共享,OpenShift既不需要也不与这种系统不兼容。
在容器内部,OpenShift通过“盒”为功能单元(Web服务器,数据库)建模,盒是在调用系统时调用的一组Shell脚本挂钩。此处描述了 API 。墨盒大致类似于docker映像。
Openshift还描述了API,代理(协调器)通过该API与节点(承载多个租户容器的服务器)进行通信以调用该容器中的端点。
编辑添加:截至2015年6月,OpenShift Origin 1.0在Docker和Kubernetes上运行,您可以构建和开发可在Docker运行时上运行的多容器应用程序。OpenShift在Kube和Docker之上添加了构建,图像工作流和升级以及安全的容器集群操作
解决方法
Docker和OpenShift都是用于实现PaaS服务的框架。
他们如何比较架构和功能?
Docker搭建openstack swift
题外话先说docker安装,不要百度查到的安装几乎没有一气呵成的。各种问题各种答案。。。
docker虽然很新,但是官网的文档一点都不少认为比任何地方都全。
https://docs.docker.com/
当然中国的墙总是这么牛逼,所以的把它趴了在看人。
docker run -d -p 80:4000 docs/docker.github.io #以docker的方式看官方文档。
百度上多数都说yum和apt直接安装docker的都行,也有说什么维护不维护的。个人用的是官网的的安装脚本
curl -fsSL https://get.docker.com/ | sh #官网太慢所以要常用一些加速器
使用阿里云安装脚本:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
使用docloud安装docker脚本:curl -sSL https://get.daocloud.io/docker | sh
以上把墙给扒了看到docker的人了。
然后我们执行run -i -t hello-world或者pull的时候发现很慢。
还是的扒墙,配置加速器所谓的代理,此处为ubuntu16和centos7的配置方法:
$ sudo systemctl enable docker #启动服务
sudo vi /etc/systemd/system/multi-user.target.wants/docker.service #编辑这个文件加入代理的url
在文件中找到ExecStart=这一行,并且在其行尾添加上所需的配置。假设我们获得的加速器地址为https://jxus37ac.mirror.aliyuncs.com,那么可以这样配置:
ExecStart=/usr/bin/dockerd --registry-mirror=https://jxus37ac.mirror.aliyuncs.com
保存退出后,重新加载配置并启动服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
确认一下配置是否已经生效:
sudo ps -ef | grep dockerd
如果配置成功,生效后就会在这里看到自己所配置的加速器。
chkconfig docker on #放到开机自动启动里方便,或者自己启动sudo service docker start
以上docker准备完事。
开始搭建环境:
从 docker hub或者docloud 下载docker镜像 docker-swift-onlyone 在本地运行:
sudo docker run -i -t morrisjobke/docker-swift-onlyone /bin/bash
ps ax
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing stat
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing upload swift /etc/swift
swift -A http://127.0.0.1:49162/auth/v1.0 -U test:tester -K testing list test swift.txt
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing download swift /etc/swift
以上几条命令分别是swift启动后的查看上传下载命令。
启动脚本在路径:/usr/local/bin startmian.sh
swift路径:/etc/swift
log路径:/var/log
以上完成环境配置,很多知识可能会遗漏很多大概应该提供一个思路和部分的解决办法了。补充代理的url地址在docloud上有提示,登陆docloud就可以看到这个选项。
关于Openshift-我可以使用Openshift运行docker客户端命令和例如docker push吗?的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Docker – OpenShift V3与OpenShift V2、docker – 找不到openshift v3 pod文件、docker与openshift相比如何?、Docker搭建openstack swift的相关知识,请在本站寻找。
本文标签: