我在为/var/lib/dockerMac安装docker之后在Mac上寻找文件夹.
随着docker info 我得到
Containers: 5
...
Server Version: 1.12.0-rc4
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 339
Dirperm1 Supported: true
...
Name: moby
ID: LUOU:5UHI:JFNI:OQFT:BLKR:YJIC:HHE5:W4LP:YHVP:TT3V:4CB2:6TUS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
....
Run Code Online (Sandbox Code Playgroud)
但/var/lib/docker我的主机上没有目录.
我已经检查/Users/myuser/Library/Containers/com.docker.docker/但在那里找不到任何东西.知道它在哪里吗?
我想创建一个能够在不同服务器上运行的docker-compose文件.
为此,我必须能够在docker-compose.yml中的几个位置指定服务器的host-ip或主机名(所有容器都在运行).
例如,对于一个consul容器,我想要定义其他领事容器如何找到服务器.
consul:
image: progrium/consul
command: -server -advertise 192.168.1.125 -bootstrap
Run Code Online (Sandbox Code Playgroud)
我不想显然硬编码192.168.1.125.
我可以使用 env_file:来指定主机名或ip并在每个服务器上采用它,所以我将这些信息放在一个地方并在docker-compose.yml中使用它.但是这只能用于指定环境变量而不能用于广告参数.
有更好的解决方案吗?
我想使用他们的sha256代码拉出centos,tomcat,...的图像
docker pull myimage@sha256:0ecb2ad60
但我找不到sha256代码可以在任何地方使用.
我检查了dockerhub存储库中有关sha256代码的任何提示,但找不到任何.我按标签下载了图片
docker pull tomcat:7-jre8
Run Code Online (Sandbox Code Playgroud)
并检查图像docker inspect以查看元数据中是否有sha256代码,但没有(添加图像的sha256代码可能会更改sha256代码).
我是否必须自己计算图像的sha256代码并使用它?
当我创建一个新的docker容器时
docker run -it -m 560m --cpuset-cpus=1,2 ubuntu sleep 120
Run Code Online (Sandbox Code Playgroud)
并检查其命名空间,我可以看到已创建新的命名空间(pid 7047的示例).
root@dude2:~# ls /proc/7047/ns -la
total 0
dr-x--x--x 2 root root 0 Jul 7 12:17 .
dr-xr-xr-x 9 root root 0 Jul 7 12:16 ..
lrwxrwxrwx 1 root root 0 Jul 7 12:17 ipc -> ipc:[4026532465]
lrwxrwxrwx 1 root root 0 Jul 7 12:17 mnt -> mnt:[4026532463]
lrwxrwxrwx 1 root root 0 Jul 7 12:17 net -> net:[4026532299]
lrwxrwxrwx 1 root root 0 Jul 7 12:17 pid -> pid:[4026532466] …Run Code Online (Sandbox Code Playgroud) 当我启用gomodules并构建我的go程序时,将下载所需的包.
但我可以在$ GOPATH/src /或$ GOPATH/src/mod中找到它们.
它们存放在哪里?
export GO111MODULE=on
go mod init
go build main.go
go: finding github.com/sirupsen/logrus v1.0.6
go: downloading github.com/sirupsen/logrus v1.0.6
...
Run Code Online (Sandbox Code Playgroud) 设置JVM参数之间是否存在差异
-Djava.library.path=/path
Run Code Online (Sandbox Code Playgroud)
在JVM启动并设置Linux环境变量
export LD_LIBRARY_PATH=/path
Run Code Online (Sandbox Code Playgroud)
在JVM启动之前?
这两种方法有哪些优点/缺点?
我的 Tomcat 容器需要必须受到良好保护的数据,即用于数据库访问的密码以及用于单点登录到其他系统的证书和密钥。
我已经看到一些使用-e或-env-file将秘密数据传递给容器的建议,但这可以通过 docker inspect 发现(-env-file也在docker inspect 中显示文件的所有属性)。
另一种方法是将带有机密的数据容器链接到服务容器,但我不喜欢在我的注册表中包含此数据容器的概念(可供更广泛的人访问)。我知道我可以设置一个私有注册表,但是我需要不同的注册表来进行测试和生产,而且每个可以访问生产注册表的人仍然可以访问秘密数据。
我正在考虑使用包含机密数据的目录设置我的服务器并将机密数据安装到我的容器中。这对于具有不同秘密的测试和生产服务器非常有用。但它创建了容器对我的特定服务器的依赖。
所以我的问题是:您如何处理秘密数据,该问题的最佳解决方案是什么?
我已经ApiGateway向Kubernetes 添加了一个新的CRD ,我想要关注它的新资源/更改资源.
这适用于简单的Rest Client,如下例所示.
但我想用这些资源来观察k8s.io/client-go/kubernetes.
虽然获取标准资源很简单,例如下面的客户端 - 例子,但我没有得到任何适用于CRD的东西.是否可以通过client-go完成这项工作?
客户端 - 标准资源的示例
import (
....
"k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func handleNewServices(clientset *kubernetes.Clientset) {
for {
serviceStreamWatcher, err := clientset.CoreV1().Services("").Watch(metav1.ListOptions{})
if err != nil {
panic(err.Error())
}
//fmt.Printf("%T\n", serviceStreamWatcher)
for {
select {
case event := <-serviceStreamWatcher.ResultChan():
service := event.Object.(*v1.Service)
for key, value := range service.Labels {
fmt.Printf("Key, VAlue: %s %s\n", key, value)
}
...
Run Code Online (Sandbox Code Playgroud)
RestClient(工作正常)
package main
import (
"net/http"
....
)
func main() …Run Code Online (Sandbox Code Playgroud) 我在 aws 上创建了一个简单的EKS集群,如https://github.com/terraform-providers/terraform-provider-aws/tree/master/examples/eks-getting-started中所述。
\n\n在这个集群中,我创建了一个nginx 部署和一个Loadbalancer类型的服务,如下所述。\n该配置在 minikube 上本地运行。
\n\n在 AWS 上,我可以看到 pod 和服务已启动,该服务具有外部 IP,我可以使用 kubectl port-forward 访问 pod,并且可以 ping LoadBalancer。
\n\n但是,我无法通过浏览器通过http://a53439687c6d511e8837b02b7cab13e7-935938560.eu-west-1.elb.amazonaws.com:3001
访问负载均衡器\n我\This site can\xe2\x80\x99t be reached
知道我应该去哪里调查吗?
\n\nNGinx 部署
\n\napiVersion: extensions/v1beta1\nkind: Deployment\nmetadata:\n annotations:\n deployment.kubernetes.io/revision: "1"\n labels:\n run: nginx\n name: nginx\n namespace: default\nspec:\n progressDeadlineSeconds: 600\n replicas: 1\n revisionHistoryLimit: 2\n selector:\n matchLabels:\n run: nginx\n template:\n metadata:\n creationTimestamp: null\n labels:\n run: nginx\n spec:\n containers:\n - image: …Run Code Online (Sandbox Code Playgroud) 我想在 AWS EKS 上为多个从外部系统访问的微服务设置入口控制器。
微服务通过虚拟主机名访问,如svc1.acme.com, svc2.acme.com, ...
我用舵图设置了 nginx 入口控制器:https : //github.com/helm/charts/tree/master/stable/nginx-ingress
我的想法是保留一个弹性 IP 地址并通过设置变量 externalIP 将 nginx 控制器绑定到该 IP。
这样我应该能够使用稳定的通配符 DNS 条目访问服务 *.acme.com --> 54.72.43.19
我可以看到入口控制器服务获取了 externalIP,但无法访问该 IP。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-ingress-controller LoadBalancer 10.100.45.119 54.72.43.19 80:32104/TCP,443:31771/TCP 1m
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
更新:
我使用以下命令安装了入口控制器:
helm install --name ingress -f values.yaml stable/nginx-ingress
这是值的要点,与默认值相比唯一更改的是
externalIPs: ["54.72.43.19"]
https://gist.github.com/christianwoehrle/3b136023b1e0085b028a67ca6a0959b7
docker ×5
kubernetes ×3
amazon-eks ×2
go ×2
linux ×2
amazon-elb ×1
java ×1
macos ×1
security ×1
vgo ×1