我是 docker 和 Kubernetes 的新手,我正在尝试创建一个容器,tomcat7/Java7以便我可以将webapps其部署到其中。我唯一担心的是tomcat/conf配置文件,其中有细节database connections,threadpool,Java Memory等。
我想要的是将这些文件从 Kubernetes 服务器复制到 docker-container 并将它们放在正确的位置,同时启动容器。
PS:我不想通过环境变量来做,因为如果我为配置文件中的每个条目保留一个变量,它们的数量将会很大。
有没有一种方法可以检查 docker 容器由多少层组成,而无需查看它“继承”的每个 docker 文件来计算RUN有多少层?
我有一个加载 8 GB 数据的 Julia 程序。它在我的本地机器上运行良好。
但是当我在 docker 容器中尝试它时,它没有加载数据并给出总线错误。它可以很好地处理 docker 容器中 20 MB 的小数据。
Dockerfile
FROM ubuntu:16.04
WORKDIR /julia
RUN apt-get -y update
RUN apt-get -y install unzip
RUN apt-get -y install cmake
RUN apt-get -y install clang
RUN apt-get -y install wget
RUN cd /tmp/
RUN wget "https://julialang.s3.amazonaws.com/bin/linux/x64/0.5/julia-0.5.0-linux-x86_64.tar.gz"
RUN tar -xzvf julia-0.5.0-linux-x86_64.tar.gz
RUN mv julia-3c9d75391c/ ~/julia
ENV PATH="/root/julia/bin:${PATH}"
RUN julia --eval 'Pkg.add("JSON")'
RUN julia --eval 'Pkg.add("HttpServer")'
RUN julia --eval 'Pkg.add("URIParser")'
RUN julia --eval 'Pkg.clone("https://github.com/deep-compute/AdaGram.jl.git")'
RUN julia --eval 'Pkg.build("AdaGram")'
CMD …Run Code Online (Sandbox Code Playgroud) 在docker中,除了已安装的卷,容器数据还存储在哪里,直到容器运行。
因此,可以说/ usr / local是卷挂载的,因此它将在主机和容器之间共享。其他所有物品都存放在哪里?
我有一个 docker compose .yml 文件,用于在 Linux Azure 应用服务上手动安装和运行多个 docker 映像。我的下一步是通过 Azure Pipelines 自动执行此操作,我已成功为单个映像执行此操作;但无法弄清楚如何为同一应用服务实例上的多个图像执行此操作。
这是在同一应用服务实例上运行多个图像的客户端要求。如果有更好的方法,我有一些灵活性,但成本是一个因素。
我特别在寻找要添加到我的发布管道中的任务类型,以及是否有任何我可以阅读的示例或文档。到目前为止,我还没有发现任何似乎真正符合要求的东西,但我不是 DevOps 工程师,所以很可能我只是没有正确地问这个问题。
这是我拥有的 docker compose yml 文件的示例。
version: '3.7'
services:
exampleapi:
image: examplecontainerregistry.azurecr.io/example.api:latest
container_name: example.api
volumes:
- example:/mnt/example
- common:/mnt/common
certprojectservice:
image: examplecontainerregistry.azurecr.io/example.certproject.service:latest
container_name: example.certproject.service
volumes:
- example:/mnt/example
- common:/mnt/common
unityemailservice:
image: examplecontainerregistry.azurecr.io/example.email.service:latest
container_name: example.email.service
volumes:
- example:/mnt/example
- common:/mnt/common
eventconsumerservice:
image: examplecontainerregistry.azurecr.io/example.eventconsumers.service:latest
container_name: example.eventconsumers.service
volumes:
- example:/mnt/example
- common:/mnt/common
webhookresponseservice:
image: examplecontainerregistry.azurecr.io/example.webhookresponse.service:latest
container_name: example.webhookresponse.service
volumes:
- example:/mnt/example
- common:/mnt/common
unitywebhooksservice:
image: examplecontainerregistry.azurecr.io/example.webhooks.service:latest
container_name: example.webhooks.service …Run Code Online (Sandbox Code Playgroud) docker-compose azure-web-app-service docker-container azure-pipelines-release-pipeline
我的 Pod 中有两个容器 ( PodA)
第一个容器 ( C1) 有以下限制
Limits:
cpu: 2
memory: 1Gi Requests:
cpu: 100m
memory: 128Mi
Run Code Online (Sandbox Code Playgroud)
第二个容器 ( C2) 没有指定请求/限制
我有以下问题
kubectl describe nodes, a 的内存/CPU 请求/限制与 中的PodA相同C1。那是对的吗?C2?是无界的吗?受限于 的限制PodA(例如 的限制C1)?C2请求超过 1Gi 的内存会发生什么?容器是否会耗尽内存,导致整个 Pod 崩溃?或者只要节点有空闲内存,它就能获取更多内存吗?我尝试用谷歌搜索,但我看到的所有示例都为两个容器设置了资源限制
为什么在包含依赖项时会出现此错误?
\nCould not find implementation class: org.janusgraph.diskstorage.cql.CQLStoreManager\nRun Code Online (Sandbox Code Playgroud)\nCould not find implementation class: org.janusgraph.diskstorage.cql.CQLStoreManager\nRun Code Online (Sandbox Code Playgroud)\n请注意,我对 JanusGraph 和 GraphDB 以及 Cassandra 都是新手。
\ndocker run --name jg-cassandra -d -e CASSANDRA_START_RPC=true -p 9160:9160 -p 9042:9042 -p 7199:7199 -p 7001:7001 -p 7000:7000 cassandra:3.11janusgraph.cql.properties到 Cassandra [Docker 容器]\nmaven-package cassandra-3.0 docker-container janusgraph java-11
ERROR: build path /Users/client/lib/funnel_chart either does not exist, is not accessible, or is not a valid URL.
当我在合并冲突时强制删除目录时出现此错误。当我尝试这样做时,docker-compose down甚至docker-compose down --rmi all它仍然会显示此错误。同样的事情发生了docker-compose rm -all和docker-compose-dev.yml up。
我开始学习Docker。我是一个完整的 Docker 初学者。现在,我正在尝试将 Laravel 应用程序的 Docker 映像部署到 Heroku。我已经安装了一个 Laravel 项目。我的 Laravel 项目只有一个页面,一个显示消息的欢迎页面。就是这样。我只是想测试 Docker。我已经为我的 Laravel 项目创建了一个 Docker 镜像,并成功地在我的笔记本电脑上运行它,如下所示。
我在项目根文件夹中创建了一个 Dockerfile,内容如下。
FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181
Run Code Online (Sandbox Code Playgroud)
然后我像这样构建了图像
docker build -t waiyanhein/laravel c:/xampp/htdocs/docker_laravel
Run Code Online (Sandbox Code Playgroud)
然后我通过运行以下命令在本地运行它。
docker run –p 8181:8181 waiyanhein/laravel
Run Code Online (Sandbox Code Playgroud)
一切正常。然后我尝试将映像部署到 Heroku。我点击了这个链接,https://devcenter.heroku.com/articles/container-registry-and-runtime。在链接中,我登录到了heroku。
heroku container:login …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Nginx-Proxy在 Ubuntu VPS 上的 docker 容器内运行 WordPress 网站。
我创建了以下docker-compose.yml文件
version: '3.4'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
ports:
- 80:80
- 443:443
restart: always
networks:
- nginx-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro
- /etc/certificates:/etc/nginx/certs
wordpress:
image: wordpress
container_name: wordpress
restart: always
ports:
- 8080:80
environment:
- VIRTUAL_HOST=wordpress.domain.com
- VIRTUAL_PORT=5500
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=db_username
- WORDPRESS_DB_PASSWORD=db_password
- WORDPRESS_DB_NAME=db_name
depends_on:
- nginx-proxy
- db
networks:
- nginx-proxy
volumes:
- wordpress:/var/www/html
ports:
- 5500:5500
expose:
- 5500
db:
image: mysql:latest …Run Code Online (Sandbox Code Playgroud) nginx docker docker-compose docker-container jwilder-nginx-proxy
这个作品
要创建docker卷而不指定磁盘大小:
docker volume create disk1
Run Code Online (Sandbox Code Playgroud)
将卷(disk1)安装到容器
docker run -itd -v disk1:/data ubuntu
Run Code Online (Sandbox Code Playgroud)
这不起作用
现在通过指定100mb的大小来创建docker卷
docker volume create --name disk2 --opt o=size=100m
Run Code Online (Sandbox Code Playgroud)
将卷(大小为100 MB的disk2)安装到容器上
docker run -itd -v disk2:/data ubuntu
Run Code Online (Sandbox Code Playgroud)
当我运行这些命令时,出现以下错误
docker:来自守护程序的错误响应:装载卷'/ var / lib / docker / volumes / disk2 / _data'时出错:卷选项中缺少设备。
docker-container ×11
docker ×8
docker-image ×3
kubernetes ×2
azure-pipelines-release-pipeline ×1
heroku ×1
janusgraph ×1
java ×1
java-11 ×1
julia ×1
laravel ×1
memory ×1
nginx ×1
tomcat7 ×1