我最近开始使用Docker并且从未意识到我应该使用docker-compose down
而不是ctrl-c
或者docker-compose stop
去除我的实验.我现在在本地有大量不需要的泊坞窗图像.
是否有一个标志我可以运行删除所有本地docker镜像和容器?
像docker rmi --all --force
--all标志不存在,但我正在寻找具有类似想法的东西.
是否可以让主机打开Docker容器访问端口?具体来说,我在主机上运行MongoDB和RabbitMQ,我想在Docker容器中运行一个进程来监听队列并(可选)写入数据库.
我知道我可以将一个端口从容器转发到主机(通过-p选项)并从Docker容器中连接到外部世界(即Internet),但我不希望暴露RabbitMQ和MongoDB端口从东道主到外部世界.
编辑:一些澄清:
Starting Nmap 5.21 ( http://nmap.org ) at 2013-07-22 22:39 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00027s latency).
PORT STATE SERVICE
6311/tcp open unknown
joelkuiper@vps20528 ~ % docker run -i -t base /bin/bash
root@f043b4b235a7:/# apt-get install nmap
root@f043b4b235a7:/# nmap 172.16.42.1 -p 6311 # IP found via docker inspect -> gateway
Starting Nmap 6.00 ( http://nmap.org ) at 2013-07-22 20:43 UTC
Nmap scan report for 172.16.42.1
Host is up (0.000060s latency).
PORT STATE SERVICE
6311/tcp …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用MySQL数据库创建一个容器,并为这些数据库添加一个模式.
我目前的Dockerfile是:
FROM mysql
MAINTAINER (me) <email>
# Copy the database schema to the /data directory
COPY files/epcis_schema.sql /data/epcis_schema.sql
# Change the working directory
WORKDIR data
CMD mysql -u $MYSQL_USER -p $MYSQL_PASSWORD $MYSQL_DATABASE < epcis_schema.sql
Run Code Online (Sandbox Code Playgroud)
为了创建容器,我遵循Docker上提供的文档并执行此命令:
docker run --name ${CONTAINER_NAME} -e MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} -e MYSQL_USER=${DB_USER} -e MYSQL_PASSWORD=${DB_USER_PASSWORD} -e MYSQL_DATABASE=${DB_NAME} -d mvpgomes/epcisdb
Run Code Online (Sandbox Code Playgroud)
但是当我执行此命令时,不会创建Container,并且在Container状态下可以看到CMD未成功执行,实际上只mysql
执行了命令.
无论如何,有没有办法用模式初始化数据库,还是我需要手动执行这些操作?
所以我最近发现了这个很棒的工具,它说
Docker是一个开源项目,可以从任何应用程序轻松创建轻量级,可移植,自给自足的容器.开发人员在笔记本电脑上构建和测试的容器可以在规模,生产,虚拟机,裸机,OpenStack集群,公共云等中运行.
假设我有一个运行Nginx的docker镜像,并且一个网站连接到外部数据库.如何在生产中扩展容器?
我最近一直在尝试使用Docker构建一些服务来解决这个问题,并且一直在唠叨我的一直是将密码放在Dockerfile中.我是一名开发人员,因此在源代码中存储密码感觉就像一拳.这应该是一个问题吗?关于如何在Dockerfiles中处理密码有什么好的约定吗?
我运行一个私有的docker注册表,我想latest
从存储库中删除所有图像.我不想删除整个存储库,只删除其中的一些图像.该API文档不提一个办法做到这一点,但肯定这是可能的?
每个docker run
命令或RUN
Dockerfile中的每个命令都会创建一个容器.如果容器不再运行,仍然可以看到它docker ps -a
.
我是否应该关注拥有大量非运行容器?我应该docker rm
在非运行容器上发行吗?
我不确定这些非运行容器会产生什么性能或内存/存储损失.
我正在寻找一种从docker容器中使用GPU的方法.
容器将执行任意代码,因此我不想使用特权模式.
有小费吗?
从以前的研究中我了解到run -v
和/或LXC cgroup
是要走的路,但我不确定如何完全解决这个问题
我是Docker的新手,我试图准确理解Docker 图像是什么.Docker镜像的每个定义都使用术语"图层",但似乎并未定义图层的含义.
从官方Docker文档:
我们已经看到Docker镜像是从中启动Docker容器的只读模板.每个图像由一系列图层组成.Docker利用联合文件系统将这些层组合成一个图像.联合文件系统允许透明地覆盖单独文件系统的文件和目录(称为分支),形成单个连贯的文件系统.
所以我问,什么是一层(确切地说); 有人能给出一些具体的例子吗?这些图层如何"拼合"形成图像?
我今天刚刚下载了适用于Windows 10 64bit的Docker Toolbox.我正在阅读教程.尝试使用Dockerfile构建映像时,我收到以下错误.
脚步:
错误:$ docker build -t docker-whale.无法准备上下文:无法评估Dockerfile路径中的符号链接:GetFileAttributesEx C:\ Users\Villanueva\Test\testdocker\Dockerfile:系统找不到指定的文件.
顺便说一句:我试过几个选项@ https://github.com/docker/docker/issues/14339
$ docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 2
Server Version: 1.10.1
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.1.17-boot2docker
Operating System: Boot2Docker 1.10.1 (TCL 6.4.1); master : b03e158 - Thu …
Run Code Online (Sandbox Code Playgroud) docker ×10
build ×1
cuda ×1
dockerfile ×1
linux ×1
mysql ×1
networking ×1
port ×1
production ×1
scale ×1
security ×1