我试图在Docker for Windows中运行一个基本的控制台应用程序( 用Qt开发 )。 开发环境是windows 10,编译器VC2015,32位应用程序。 在我尝试移植实际的应用程序之前,这是个好世界,想法是找到问题。 代码是最简单的c ++代码: #include <QCoreApplication> #include <iostream> using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); std::cout<<"Hello world"; return a.exec(); } Dockerfile是: # Comment: #It needs a Microsoft environment to run FROM microsoft/nanoserver:latest #Create a folder inside the home folder in the Container Operating System […]
Mac Os Sierra 10.12.5 在Mac上的Docker Client: Version: 17.06.0-ce API version: 1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:31:53 2017 OS/Arch: darwin/amd64 Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:51:55 2017 OS/Arch: linux/amd64 Experimental: true 注册处 CentOS Linux release 7.3.1611 […]
我有一个命名卷容器将共享资源部署到生产版本的swarm中的工作节点。 它似乎部署,但不会填充指定的卷。 这个容器的图像如下所示: FROM alpine RUN mkdir $HOME/node_modules COPY ./node_modules $HOME/node_modules VOLUME $HOME/node_modules 构建时,图像将当前的一组模块从开发机器复制到容器中的图层中。 然后将此容器作为服务部署在工作节点上,在撰写文件中定义为: version: "3" services: nmod_core: image: nmod_core:1.0.0 environment: – HOME=/root volumes: – nmod_core:$HOME/node_modules deploy: replicas: 2 placement: constraints: [node.role == worker] restart_policy: condition: on-failure max_attempts: 1 在部署时,docker根据这个脚本在每个worker节点上创建一个命名卷。 创建一个命名卷意味着它在/ var / lib / docker / volumes / nmod_core / _data处创建一个主机目录,并将容器的node_modules内容复制到该目录中。 容器退出,因为它没有正在进行的过程。 所以我将重启限制设置为1,以便服务不会试图重启。 […]
在我决定在Docker容器中运行web服务而不是root的可能是一个好主意, version: '3' services: web: build: . … volumes: – .:/opt/app # enables hot code reloading – uploads:/opt/app/uploads … volumes: uploads: driver: local 以使客户端中的/opt/app/uploads uploads文件夹与主机上的uploads文件夹相同。 现在,添加了一个新的非root用户,我看到了卷目录/opt/app/uploads被分配给根的问题,而不是用户。 我该如何解决这个问题? (我知道我可以访问容器,并手动执行…但我想知道是否有一个更简单的解决方案,例如编辑Dockerfile或docker-compose.yml )
我已经在我的docker文件中使用下面的行安装R. 请建议如何指定现在要安装在我的泊坞窗文件中的包。 RUN yum -y install R-core R-devel 我正在做这样的事情: RUN R -e "install.packages('methods',dependencies=TRUE, repos='http://cran.rstudio.com/')"\ && R -e "install.packages('jsonlite',dependencies=TRUE, repos='http://cran.rstudio.com/')" \ && R -e "install.packages('tseries',dependencies=TRUE, repos='http://cran.rstudio.com/')" 这是正确的方法吗?
当我在我的泊坞窗图像中运行我的python脚本时,我得到这个错误 ImportError: No module named _tkinter, please install the python-tk package 所以我尝试了“安装python-tk” root@43d2222b15c8:/tf_files# pip install python-tk Collecting python-tk Could not find a version that satisfies the requirement python-tk (from versions: ) No matching distribution found for python-tk 但是这并不能解决我的问题。 你能告诉我如何解决我的问题? 谢谢。
我正在运行以下命令启动Jekyll与我的本地签出Jekyll网站: docker run -p 4000:4000 –volume=$PWD:/srv/jekyll \ -it jekyll/jekyll:$JEKYLL_VERSION jekyll serve 这工作得很好。 但是,当我通过它–baseurl参数是这样的: docker run -p 4000:4000 –volume=$PWD:/srv/jekyll \ -it jekyll/jekyll:$JEKYLL_VERSION jekyll serve –baseurl '' 一切都运行良好,直到它到了这一点: > docker run -p 4000:4000 –volume=$PWD:/srv/jekyll -it jekyll/jekyll:$JEKYLL_VERSION jekyll serve –baseurl '' Warning: the running version of Bundler (1.15.2) is older than the version that created the lockfile (1.15.3). […]
当我使用开源的Dockerfile的时候遇到了一个问题,这个问题归结为“你为什么要改变图层? – 所以我试图用我自己的调查来回答这个问题。 我很抱歉,这个问题没有很好的定义,但本质上是关于码头层如何与码头缓存相关联。 所以我在一个没有很好记录的地方寻找一个优雅的解释。 我从原来的Dockerfile中将ENV分离到不同的层,更早地移动一个COPY,以及稍后公开端口。 原来的(简体): FROM ubuntu:latest EXPOSE 80 ENV HELLO world \ && DOCKER whale RUN # Run stuff COPY source /to/container CMD # Do stuff 我的更改: FROM ubuntu:latest ENV HELLO world ENV DOCKER whale # <– Separate ENV into different layers COPY source /to/container # <– Less prone to change, move […]
我不太清楚音量和安装的行为 1.没有音量,没有安装 FROM centos RUN mkdir /data CMD ["bash"] docker build -t vm . docker run –rm vm mkdir /data/new 我确定/ data / new不会存在于主机磁盘中 2.没有卷,与安装 FROM centos RUN mkdir /data CMD ["bash"] docker build -t vm . docker run –rm -v /tmp:/data vm mkdir /data/new / tmp / new在容器删除后没有VOLUME存在,VOLUME的意义是什么? 3.有音量,没有安装 FROM centos RUN mkdir /data […]
我正在尝试在gcp计算引擎上运行启动脚本。 脚本启动,启动Docker容器,并从该容器中运行命令。 启动脚本之外,整个工作没有错误,但显然启动脚本不是为这个任务设计的? 我打电话。 gcloud compute instances create cloudml –image-family=container-vm –image-project=google-containers –boot-disk-size "40" –service-account "773889352370-compute@developer.gserviceaccount.com" –scopes "https://www.googleapis.com/auth/cloud-platform" –metadata-from-file startup-script=Training.sh 我可以通过串口监视启动脚本的日志。 我可以看到它正确抓住脚本,并开始。 第一个命令是docker run sudo docker run -it –privileged — gcr.io/api-project-773889352370/cloudmlengine 从日志中,它会拉动和提取 Jul 24 21:54:02 cloudml startupscript: latest: Pulling from api-project-773889352370/cloudmlengine Jul 24 21:54:02 cloudml startupscript: 9f0706ba7422: Pulling fs layer Jul 24 21:54:02 cloudml startupscript: ec542cd45f0c: […]