我开始使用Docker了.我正在使用WordPress基本图像和docker-compose.
我正在尝试ssh到其中一个容器中来检查在初始构建期间创建的文件/目录.我试图跑docker-compose run containername ls -la
,但那没有做任何事情.即使它确实如此,我宁愿有一个控制台,我可以遍历目录结构,而不是运行单个命令.使用Docker执行此操作的正确方法是什么?
人们如何处理Docker容器的持久存储?
我目前正在使用这种方法:构建映像,例如PostgreSQL,然后启动容器
docker run --volumes-from c0dbc34fd631 -d app_name/postgres
Run Code Online (Sandbox Code Playgroud)
恕我直言,有缺点,我不能(偶然)删除容器"c0dbc34fd631".
另一个想法是将主机卷"-v"安装到容器中,但是,用户ID的容器内不一定匹配用户ID从主机,然后权限可能会混乱.
注:与其--volumes-from 'cryptic_id'
你也可以使用--volumes-from my-data-container
这里my-data-container
是你分配到纯数据容器,如姓名docker run --name my-data-container ...
(见接受的答案)
有一个列出图像的命令docker images
,但似乎没有相应的docker containers
.
除了成为root并且调查之外/var/lib/docker
似乎没有办法做到这一点.我错过了什么吗?这是不应该做的事吗?
我在OS X 10.8.4(Mountain Lion)下在Vagrant下运行Docker,每当我尝试删除已保存的图像时,我都会收到错误消息:
$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input
Run Code Online (Sandbox Code Playgroud)
根据rmi
帮助,正确的语法是docker rmi IMAGE [IMAGE...]
,我不知道该怎么做.
如何删除图像?
$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1
Run Code Online (Sandbox Code Playgroud)
$docker info
Containers: 1
Images: 3
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我跑步时docker ps
,根本没有容器出现.跑步docker images
显示四(4)base
张图像和一(1)张node
图像.
使用Docker时,我们从基本映像开始.我们启动它,创建更改并将这些更改保存在层中,形成另一个图像.
所以我最终得到了一个用于我的PostgreSQL实例的图像和一个用于我的Web应用程序的图像,这些图像继续保持不变.
所以问题是:什么是容器?
我设法找到目录下的容器/var/lib/docker/containers
,但我找不到图像.
目录和文件是/var/lib/docker
什么?
我是Docker的新手,目前还不清楚如何从容器访问外部数据库.是连接字符串中硬编码的最佳方法吗?
# Dockerfile
ENV DATABASE_URL amazon:rds/connection?string
Run Code Online (Sandbox Code Playgroud) 长时间运行Docker时,系统中有很多图像.如何一次性删除所有未使用的Docker镜像以释放存储空间?
另外,我还想删除几个月前拉出的图片,这些都是正确的TAG
.
所以,我不是要求仅删除未标记的图像.我正在寻找一种方法来删除一般未使用的图像,其中包括未标记的图像和其他图像,例如几个月前正确的图像TAG
.
我使用下面的命令从Docker文件构建了一个Docker镜像.
$ docker build -t u12_core -f u12_core .
Run Code Online (Sandbox Code Playgroud)
当我尝试使用相同的命令重建它时,它正在使用构建缓存,如:
Step 1 : FROM ubuntu:12.04
---> eb965dfb09d2
Step 2 : MAINTAINER Pavan Gupta <pavan.gupta@gmail.com>
---> Using cache
---> 4354ccf9dcd8
Step 3 : RUN apt-get update
---> Using cache
---> bcbca2fcf204
Step 4 : RUN apt-get install -y openjdk-7-jdk
---> Using cache
---> 103f1a261d44
Step 5 : RUN apt-get install -y openssh-server
---> Using cache
---> dde41f8d0904
Step 6 : RUN apt-get install -y git-core
---> Using cache
---> 9be002f08b6a
Step …
Run Code Online (Sandbox Code Playgroud) 我注意到docker我需要了解容器内发生的事情或者那里存在的文件.一个例子是从docker索引下载图像 - 你不知道图像包含什么,因此无法启动应用程序.
什么是理想的是能够ssh到他们或等同.有没有一个工具可以做到这一点,或者我认为码头工作者的错误认为我应该能够做到这一点.