我一直在使用Octopus Deploy,只是为了将Web应用程序部署到AWS EC2实例上.我知道Octopus Deploy是特定于.NET的,与Docker相比,学习曲线非常简单.我理解使用Docker的一个方面是创建容器而不是使用虚拟机管理程序来创建VM.
但我的问题是使用Docker而不是章鱼部署的真正原因是什么?这对于部署应用程序更好.他们做不同的事吗?
我的java进程在容器内运行.当然,我可以在主机上看到这个过程并看到它的pid.如果群集上没有安装jdk但是在主机上安装了jdk,我是否可以使用此pid在docker容器中针对java进程从主机运行jstack.顺便说一句,我尝试了它并遇到了以下错误
Attaching to process ID 66367, please wait...
Error attaching to process: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
sun.jvm.hotspot.debugger.DebuggerException: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)
at sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:411)
at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:305)
at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
at sun.jvm.hotspot.tools.JStack.main(JStack.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.tools.jstack.JStack.runJStackTool(JStack.java:140)
at sun.tools.jstack.JStack.main(JStack.java:106)
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu/Linux的docker docker容器中看到了docker.根据此线程中的回复,以下命令有效
docker run -v /var/run/docker.sock:/run/docker.sock -v $(which docker):/bin/docker [your image
在Windows 7中是否有可用于docker的类似命令?
我在AWS上有2个节点的docker swarm集群.我停止了这两个实例,最初启动了swarm管理器,然后是worker.在停止实例之前,我有一个服务运行,其中4个副本分布在经理和工作人员之间.
当我首先启动swarm管理器节点时,所有副本容器都在管理器本身启动,而根本没有移动到worker.
请告诉我如何进行负载均衡?
当工人开始时,群体经理不负责吗?
docker dockerfile docker-compose docker-swarm docker-container
如果容器自动崩溃,我想重新启动它。我不确定该怎么做。我有一个脚本docker-compose-deps.yml,其中包含elasticsearch,redis,nat和mongo。我在终端中运行此程序以进行设置:docker-compose -f docker-compose-deps.yml up -d。之后,我通过运行来设置容器docker-compose up -d。如果它们崩溃,是否有办法使这些容器重新启动?我注意到docker具有内置的重启功能,但是我不知道如何实现。
经过一些反馈,我将添加restart: always到我的docker-compose文件和docker-compose-deps.yml文件中。这看起来正确吗?还是这是您始终执行重启的方式?
docker-compose示例
myproject-server:
build: "../myproject-server"
dockerfile: Dockerfile-dev
restart: always
ports:
- 5880:5880
- 6971:6971
volumes:
- "../myproject-server/src:/src"
working_dir: "/src"
external_links:
- nats
- mongo
- elasticsearch
- redis
myproject-associate:
build: "../myproject-associate"
dockerfile: Dockerfile-dev
restart: always
ports:
- 5870:5870
volumes:
- "../myproject-associate/src:/src"
working_dir: "/src"
external_links:
- nats
- mongo
- elasticsearch
- redis
Run Code Online (Sandbox Code Playgroud)
docker-compose-deps.yml示例
nats:
image: nats
container_name: nats
restart: always
ports:
- …Run Code Online (Sandbox Code Playgroud) 我对docker stats命令有疑问,是否有人可以帮助我。我是Docker领域的新手,我想监视Docker容器的cpu使用情况。
该物理机具有8个内核(CPU0 ... CPU7)。我已经创建了一个容器,并使用以下命令将其cpu资源限制为1个核心(CPU0):docker run -itd --cpuset-cpus = 0 -p 8081:8080 binfalse / bives-webapp
我通过从Jmeter发送请求来强调容器,然后通过docker stats命令监视容器的cpu使用情况,该命令为我提供的值大于100%。
我不明白为什么即使仅将一个内核分配给容器,它也提供100%以上的结果!您对原因有任何想法吗?除了容器之外,此cpu值是否还代表某些系统进程的cpu使用情况?
在此先感谢您的帮助。
docker 版本:客户端:版本:17.06.0-ce API版本:1.30 Go版本:go1.8.3 Git提交:02c1d87内置:Fri Jun 23 21:23:31 2017 OS / Arch:linux / amd64
服务器:版本:17.06.0-ce API版本:1.30(最低版本1.12)Go版本:go1.8.3 Git提交:02c1d87内置:Fri Jun 23 21:19:04 2017 OS / Arch:linux / amd64实验:true
码头工人信息结果: 容器:2运行:1暂停:0停止:1图像:10服务器版本:17.06.0-ce存储驱动程序:aufs根目录:/ var / lib / docker / aufs支持文件系统:extfs目录:141 Dirperm1支持:true记录驱动程序:json-file Cgroup驱动程序:cgroupfs插件:卷:本地网络:网桥主机ipvlan macvlan空覆盖日志:awslogs fluentd gcplogs gelf记录日志的json文件logentries splunk syslog Swarm:非活动运行时:runc默认运行时:runc初始化二进制文件:docker-初始容器版本:cfb82a876ecc11b5ca0977d1733adbe58599088a runc版本:2d41c047c83e09a6d61d464906feb2a2f3c52aa4初始版本:949e6fa安全选项:apparmor seccomp配置文件:默认内核版本:Linux 4.4.0-98-Generic通用操作系统:Ubuntu 4.6.0-98-GenericOS:6.0 :15.56GiB名称:logti048131 ID:RHOG:IR6N:FVC4:YDI5:A6T4:QA4Y:DDYF:7HZN:AI3L:WVLE:BNHY:6YNV Docker根目录:/ var / lib / docker调试模式(客户端):错误调试模式(服务器):错误注册表:https://index.docker.io/v1/ 实验:true不安全注册表:127.0.0.0/8启用实时还原:false
警告:不支持交换限制
我开始在 MacOS 上运行 Docker,我刚刚能够安装一个 WordPress 容器并让它在本地运行。但是真正的WordPress 文件到底在哪里?
我是否需要通过 SSH 连接到容器中才能在那里查看/编辑它们?如果是这样,人们会怎么做呢?
如何使用Docker客户端找到两个正在运行的容器之间的区别?我有一个图像作为多个实例运行,后来我在实例中更改/安装了新包并丢失了跟踪.有没有办法可以找到这些运行容器之间的差异?
我正在做一些非常简单的事情。这是我的Dockerfile:
FROM alpine:latest
ADD hello.sh /bin/hello
RUN chmod +x /bin/hello
CMD /bin/hello
Run Code Online (Sandbox Code Playgroud)
然后我构建图像:
docker build -t hello .
Run Code Online (Sandbox Code Playgroud)
然后我运行图像:
docker run hello
Run Code Online (Sandbox Code Playgroud)
这是输出:
/bin/sh: /bin/hello: not found
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?如果我运行:
docker run hello cat /bin/hello
Run Code Online (Sandbox Code Playgroud)
我可以看到我的脚本内容,这让我更加困惑。
我正在尝试将一些文件从我的docker容器复制到我的localhost,我阅读了文档说明这样做的方法
docker cp 'container':path/to/file dest/path
Run Code Online (Sandbox Code Playgroud)
但是这需要我知道容器中我想要的路径和目录,如何查看容器的目录?我试过docker diff和docker inspect但是这些没有显示容器的文件目录
docker ×10
docker-container ×10
.net ×1
cpu-usage ×1
docker-copy ×1
docker-swarm ×1
dockerfile ×1
java ×1
windows-7 ×1
wordpress ×1