标签: docker

如何在Docker容器中安装主机目录

我正在尝试将主机目录挂载到Docker容器中,以便在主机上完成的任何更新都会反映到Docker容器中.谷歌搜索和阅读Docker音量链接后,我无法成功.

我在哪里做错了什么.这是我做的:

kishore$ cat Dockerfile

FROM ubuntu:trusty
RUN apt-get update
RUN apt-get -y install git curl vim
CMD ["/bin/bash"]
WORKDIR /test_container
VOLUME ["/test_container"]
Run Code Online (Sandbox Code Playgroud)

kishore$ tree
.
??? Dockerfile
??? main_folder
    ??? tfile1.txt
    ??? tfile2.txt
    ??? tfile3.txt
    ??? tfile4.txt

1 directory, 5 files kishore$ pwd /Users/kishore/tdock

Run Code Online (Sandbox Code Playgroud)
kishore$ docker build --tag=k3_s3:latest .

Uploading context 7.168 kB
Uploading context
Step 0 : FROM ubuntu:trusty
 ---> 99ec81b80c55
Step 1 : RUN apt-get update
 ---> Using cache
 ---> 1c7282005040
Step 2 : RUN apt-get -y …
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)

mount docker boot2docker

552
推荐指数
23
解决办法
76万
查看次数

将Docker镜像作为容器运行

我从dockerfile构建了一个docker镜像.我看到图像已成功构建,但我该怎么做呢?它不应该作为容器运行吗?

码头工人的新手可能是对我的误解,任何帮助都会很棒.

docker docker-image

538
推荐指数
9
解决办法
79万
查看次数

Docker如何更改存储库名称或重命名图像?

我正在尝试更改图像的存储库名称:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
server              latest              d583c3ac45fd        26 minutes ago      685.5 MB
Run Code Online (Sandbox Code Playgroud)

因此,我想将名称更改server为类似myname/server:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
myname/server       latest              d583c3ac45fd        26 minutes ago      685.5 MB
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

docker linux-containers

515
推荐指数
6
解决办法
30万
查看次数

如何输入已经使用新TTY运行的Docker容器

我有一个在前台运行Apache服务的容器.我希望能够从另一个shell访问容器,以便在其中"查找"并检查文件.目前,如果我附加到容器,我只是看着Apache守护进程,无法运行任何命令.

是否可以将另一个tty附加到正在运行的容器上?可能,我可以利用Docker实际上只是环绕LXC容器这一事实?我试过sudo lxc-console -n [container-id] -t [1-4]但似乎只有一个tty可用,那就是运行apache守护进程的tty.也许有一种方法可以在构建期间启用多个lxc控制台?

如果可能的话,我宁愿使用openssh服务配置和构建容器.

tty docker

501
推荐指数
6
解决办法
35万
查看次数

如何在映像更改后升级docker容器

假设我已经取消了正式的mysql:5.6.21图像.

我通过创建几个docker容器来部署此映像.

这些容器已运行一段时间,直到MySQL 5.6.22发布.mysql的官方形象:5.6使用新版本更新,但我的容器仍然运行5.6.21.

如何将图像中的更改(即升级MySQL发行版)传播到我现有的所有容器?Docker的正确方法是什么?

docker

481
推荐指数
9
解决办法
39万
查看次数

Docker容器的运行时性能成本是多少?

我想全面了解Docker容器的运行时性能开销.我发现网络的参考传闻速度慢了~100μs.

我还发现运行时成本的参考值"可以忽略不计"和"接近于零",但我想更准确地了解这些成本是多少.理想情况下,我想知道Docker正在以性能成本和抽象的东西进行抽象而没有性能成本.网络,CPU,内存等

此外,如果存在抽象成本,是否有办法绕过抽象成本.例如,也许我可以在Docker中直接安装磁盘.

performance docker

458
推荐指数
3
解决办法
13万
查看次数

shell转换为Docker容器后如何编辑文件?

我使用成功炮击了Docker容器

docker exec -i -t 69f1711a205e bash
Run Code Online (Sandbox Code Playgroud)

现在我需要编辑文件,里面没有任何编辑器:

root@69f1711a205e:/# nano
bash: nano: command not found
root@69f1711a205e:/# pico
bash: pico: command not found
root@69f1711a205e:/# vi
bash: vi: command not found
root@69f1711a205e:/# vim
bash: vim: command not found
root@69f1711a205e:/# emacs
bash: emacs: command not found
root@69f1711a205e:/#
Run Code Online (Sandbox Code Playgroud)

如何编辑文件?

docker

456
推荐指数
13
解决办法
34万
查看次数

Docker中"expose"和"publish"有什么区别?

我正在尝试使用Dockerfiles,我想我理解大部分逻辑.但是,我没有看到在这种情况下"暴露"和"发布"端口之间的区别.

我首先看到的所有教程都包含EXPOSEDockerfile中的命令:

...
EXPOSE 8080
...
Run Code Online (Sandbox Code Playgroud)

然后他们从这个Dockerfile构建一个图像:

$ docker build -t an_image - < Dockerfile
Run Code Online (Sandbox Code Playgroud)

然后在运行映像时发布与上面相同的端口:

$ docker run -d -p 8080 an_image
Run Code Online (Sandbox Code Playgroud)

或使用发布所有端口

$ docker run -d -P an_image
Run Code Online (Sandbox Code Playgroud)

暴露Dockerfile中的端口有什么意义,如果它仍然会被发布?是否需要首先公开一个端口,而不是稍后发布它?实际上,我想在创建映像时指定我将在Dockerfile中使用的所有端口,然后再不打扰它们,只需运行它们:

$ docker run -d an_image
Run Code Online (Sandbox Code Playgroud)

这可能吗?

docker

453
推荐指数
5
解决办法
17万
查看次数

如何在已有的Docker容器上运行命令?

我创建了一个容器,-d因此它不是交互式的.

docker run -d shykes/pybuilder bin/bash
Run Code Online (Sandbox Code Playgroud)

我看到容器已退出:

CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                      PORTS               NAMES
d6c45e8cc5f0        shykes/pybuilder:latest   "bin/bash"          41 minutes ago      Exited (0) 2 seconds ago                        clever_bardeen
Run Code Online (Sandbox Code Playgroud)

现在我想在机器上运行偶尔的命令并退出.只是为了得到答复.

我试着启动机器.我试着附上.我以为我可以run用容器打电话,但似乎不允许这样做.使用start似乎只是运行然后快速存在.

退出后我想回到交互模式.

我试过了:

docker attach d6c45e8cc5f0
Run Code Online (Sandbox Code Playgroud)

但我得到:

2014/10/01 22:33:34 You cannot attach to a stopped container, start it first
Run Code Online (Sandbox Code Playgroud)

但是,如果我开始它,它无论如何都会退出.抓住22.我无法获胜.

docker

447
推荐指数
12
解决办法
49万
查看次数

Docker无法连接到docker守护程序

我将Docker版本更新为后0.8.0,输入时收到错误消息sudo docker version:

Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
Run Code Online (Sandbox Code Playgroud)

我按照指示操​​作并输入命令sudo docker -d,我得到了这个:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

linux docker

428
推荐指数
23
解决办法
51万
查看次数