Articles of Docker

如何configurationdockerregistry使用让我们encryption

从dockerregistry文件我可以看到,configuration应该是这样的: http: addr: 0.0.0.0:5000 host: https://myregistryaddress.org tls: certificate: /path/to/x509/public key: /path/to/x509/private letsencrypt: cachefile: /path/to/cache-file email: [email protected] 我用这样的命令启动registry: docker run -d -p 443:5000 \ –name registry \ –restart=always \ -v /home/ubuntu/auth:/auth \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM=RegistryRealm \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ registry:2 证书和密钥的path是必需的,但我不知道path或文件名是什么 – 因为极致代理这样做。 我是否需要首次手动获取证书和密钥? host的configuration值用于确定证书的域,还是应该指定其他位置?

Docker,UFW和IP表

首先,我是一个新的docker / linux / ufw和东西! 我在做什么: 我正在创build一个暴露端口的docker集装箱。 在这种情况下它的8080.该容器的行为如预期。 其次,我想closures服务器。 因此,我激活UFW,只允许22,80,443。 我本来以为我不能访问myserver:8080,因为这个端口是closures的! 我明白,docker使用iptables待办事项'的东西'路由到它。 到现在为止,对我来说可悲的只是“东西”。 所以我用这个内容创build了json文件/etc/docker/daemon.json : { "iptables": true } 意图确保我所有的港口都closures,UFW按照预期工作。 起初,一切似乎都工作得很好,直到我注意到我的容器不能再伸出去了。 看来,它不能解决的DNS。 所以我得到,我正在玩的东西,我不完全明白目前。 我正在尝试todo! 我基本上想要容器运行,封闭的端口。 但容器应该能够到达外部的http / https API。 我怎么能做到这一点? 任何帮助和支持我的学习过程是非常感谢:) 提前致谢。 问候,Hannes

在运行的环境中查找Docker容器的CPU和内存使用率百分比

有谁知道如何获得特定的Docker容器在其运行环境中的资源消耗? 在容器外部,我们可以通过键入一个命令“docker stats”轻松搞定。 此外,如果我试图获取容器内的资源消耗,它将获得容器运行的物理计算机的消耗(RAM,CPU)。 另一种select是使用“htop”命令,但是它不会完全显示与“docker stats”命令相比的结果。

在Dockerregistry中推送build立在Windows主机上的图像可以吗?

那么,整个问题就在标题中:可以将基于Windows 10主机的Docker镜像推送到Dockerregistry中供其他人使用? 我在问,因为在构build期间,我收到警告 安全警告:您正在从Windows构build一个针对非Windows Docker主机的Docker镜像。 添加到构build上下文的所有文件和目录将具有“-rwxr-xr-x”权限。 build议仔细检查并重置敏感文件和目录的权限。 我觉得这种方法可能还有其他的缺点。

在运行CDH5 Docker映像时找不到`/ usr / bin / docker-quickstart`

我已经从Cloudera下载了CDH 5.12 Quickstart Docker镜像 。 它无法运行。 $ docker import cloudera-quickstart-vm-5.12.0-0-beta-docker.tar.gz sha256:8fe04d8a55477d648e9e28d1517a21e22584fd912d06de84a912a6e2533a256c $ docker run –hostname=quickstart.cloudera –privileged=true -t -i 8fe04d8a5547 /usr/bin/docker-quickstart docker: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "exec: \"/usr/bin/docker-quickstart\": stat /usr/bin/docker-quickstart: no such file or directory". 另一方面,做docker pull cloudera/quickstart:latest给了我一个上述作品的形象 – 这只是一个较旧的(我相信5.07)。 这个博客文章表明,CDH 5.10有所改变。 那么我该如何运行更新的图像呢?

迁移与数据库的Docker容器

当我尝试导入从我的docker安装到rocket.chat的备份到新的系统时,我遇到了一些问题。 我有所有装载文件夹和MongoDB容器的docker提交。 所以我从de mongo commit中做了一个docker import,把这个旧的mongo container的新镜像放到我的docker-compose.yml中,像这样: db: image: rocket_chat_backup volumes: – ./data/runtime/db:/data/db – ./data/dump:/dump command: mongod –smallfiles restart: always rocketchat: image: rocketchat/rocket.chat:latest environment: – MONGO_URL=mongodb://db:27017/rocketchat – ROOT_URL=https://chat.exemple.com – Accounts_UseDNSDomainCheck=True links: – db:db ports: – 10040:3000 # – 6667:6667 restart: always hubot: image: rocketchat/hubot-rocketchat:v0.1.4 environment: – ROCKETCHAT_URL=https://chat.exemple.com – ROCKETCHAT_ROOM=GENERAL – ROCKETCHAT_USER=user – ROCKETCHAT_PASSWORD=pwd – BOT_NAME=bot […]

如何在与docker-compose链接到另一个容器的容器中运行linux守护进程?

免责声明:我在这里发布这个,因为人们开始投票closures这个问题作为“脱离主题”。 虽然有些人认为Docker问题应该在SO上发布,而不是SF,但是其他人却相反。 我有以下docker-compose.yml文件,它运行带有PHP支持的nginx: version: '3' services: nginx: container_name: my-app-nginx image: nginx:1.13.6 ports: – 8080:80 volumes: – ./nginx-default.conf:/etc/nginx/conf.d/default.conf – ./my-app:/var/www/my-app restart: always depends_on: – php php: container_name: my-app-php image: php:7.1-fpm volumes: – ./my-app:/var/www/my-app restart: always /var/www/my-app的PHP应用/var/www/my-app需要与一个linux守护进程进行通信(我们称之为myappd )。 我看到的方式,我需要: 把myappd复制到/usr/local/bin的nginx容器中,用chmod +x使其可执行,并在后台运行。 创build一个不同的容器,将myappd复制到/usr/local/bin ,使用chmod +x使其可执行,并在前台运行它。 现在,我是Docker的新手,我正在研究和了解它,但是鉴于我在使用Docker Composer,我的最佳猜测是选项2可能是推荐的选项? 鉴于我对Docker的知识有限,我不得不猜测这个容器需要某种基于Linux的映像(比如Ubuntu或者其他)来运行这个二进制文件。 所以也许选项1是首选? 或者,也许选项2是可能的一个最小的Ubuntu图像,也许没有这样的形象是可能的? 无论哪种方式,我不知道如何在composer文件上实现它。 特别是选项2,PHP应用程序将如何与守护程序在不同的容器中进行通信? 就像我为nginx / php服务所做的那样,“共享”一个卷(二进制文件所在的位置)就足够了吗? 还是其他什么是必需的?

Docker:虚拟机作为工作者,其主机作为群中的pipe理者

我有麻烦find经理应该使用以下设置工作的广告地址: 问题是,如果我在主机上使用docker swarm init的默认选项,我不能让docker计算机使用上面init返回的连接string连接到这个swarm。 user@host$ docker swarm init Swarm initialized: current node (9cv0khu88hdq7wsdqlzqpj7e0) is now a manager. To add a worker to this swarm, run the following command: docker swarm join –token SWMTKN-1-2qx019269giy7jsnehqukpgjz9pqfe7ifprd0evcyi3ef1d699-7c1jig60by75lpuh5pjg5wuy8 192.168.65.2:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions. user@host$ docker-machine ssh my-vm-1 ## […]

Docker化的Nginx + Certbot + tls-sni挑战不适用于续约

我有一个使用docker容器的现有服务: nginx( nginx:1.13.5 ) 节点api(节点容器) 节点网站(节点容器) 我想为api和网站添加SSL证书。 所以我使用certbot/certbot容器来完成,没有任何问题。 我使用dns挑战生成证书,运行以下命令(从本地计算机): docker run –rm -it \ –name certbot \ -v $(pwd)/letsencrypt:/etc/letsencrypt \ certbot/certbot \ certonly –manual -d api.mydomain.com –preferred-challenges dns –renew-by-default –email xxx@xxxx –agree-tos –manual-public-ip-logging-ok 我被要求为我所做的_acme-challenge.api.mydomain.cominputTXT DNSlogging,并且获得了没有任何问题的证书。 然后我更新了我的Nginxconfiguration( /etc/nginx/nginx.conf/api.conf ): upstream api { server node-api:5000 max_fails=3; } map $http_upgrade $connection_upgrade { default "upgrade"; "" ""; } # […]

Docker守护进程configuration – 打开dockerd的端口

我想打开TCP到docker守护进程,以便Jenkins可以根据它创build容器。 我得到了很多关于如何做到这一点的信息。 希望能得到最好的方法。 docker目标: 通过TCP和本地unix套接字来收听。 持续通过重新启动。 主机特定的安全授权。 只允许来自特定主机的访问。 (可以做w / iptables) 这是一个Ubuntu Xenial主机。 当前Dockerd运行信息: root@host:# ps -ef |grep dockerd root 1171 1 0 17:51 ? 00:00:04 /usr/bin/dockerd -H fd:// Dockerconfiguration片段(/etc/init/docker.conf): post-start script DOCKER_OPTS= DOCKER_SOCKET= if [ -f /etc/default/$UPSTART_JOB ]; then . /etc/default/$UPSTART_JOB fi if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|–host'; then DOCKER_SOCKET=/var/run/docker.sock […]