标签: docker

`docker stop` 和 `docker kill` 有什么区别?

docker stop和 和有docker kill什么区别?

Afaik,两者都会停止正在运行的容器。是否docker stop试图以正确的方式停止容器内运行的进程,同时docker kill会发送终止信号?如果是这样,如何docker stop知道如何正确停止正在运行的进程。(因为这因过程而异)

docker

157
推荐指数
3
解决办法
10万
查看次数

如何在 Alpine 中安装特定的软件包版本?

我需要Dockerfile构建一个基于 Alpine Linux 的 Docker 镜像。现在我需要安装一个包作为这个的一部分Dockerfile

目前我有:

RUN apk update && \
    apk upgrade && \
    apk add git
Run Code Online (Sandbox Code Playgroud)

显然这是一个坏主意,因为结果是不确定的。相反,它取决于我构建映像的时间点,以及git正在安装的版本。

这样做的正确方法是什么?

我想我必须告诉updatedupgrade以及add使用哪些版本,但我该怎么做?

我已经看到apk支持固定存储库,但这不是我想要的(至少我是这么认为的),因为我不想固定存储库,而是一个包。

换句话说:如果git可以通过安装npm,我将能够运行:

npm install git@1.9.2
Run Code Online (Sandbox Code Playgroud)

(或我想要的任何版本)。对于 Alpine Linux,这相当于什么?

package-management docker alpine-linux

145
推荐指数
4
解决办法
24万
查看次数

Docker 容器有没有自己的内核?

我看到 docker 存储库中的很多 docker 镜像都是使用 Ubuntu 基础制作的。

这意味着什么?每个容器都捆绑了一个精简版的 Linux 内核吗?

容器是否位于自己的内核之上?但我认为容器共享主机的内核(在某些情况下是 boot2docker,一个自定义的 Tiny Core Linux 构建,在其他情况下是类似 CoreOS 的东西)。

编辑:澄清一下问题。是的,我知道 docker 是一个进程容器,而不是一个完整的 VM。但是既然官方的 docker hub 注册表和 CentOS 等其他操作系统中都有“Ubuntu”容器,那么在容器中运行 Ubuntu 意味着什么?

回答:啊,我才恍然大悟。它是 Ubuntu 用户进程,包含 apt-get 和其他特定 Ubuntu 构建的配置过程。CentOS 也是如此。Docker 不是单一进程,只是单一入口。因此,对于这些发行版,入口点是某种 init 进程,它会产生其他进程。

docker

87
推荐指数
3
解决办法
7万
查看次数

使用 docker 获取 http://deb.debian.org/debian/dists/jessie-updates/InRelease 的问题

我正在尝试运行命令 docker-compose build

我得到这个输出:

Step 4/8 : RUN apt-get update && apt-get install -y google-chrome-stable
 ---> Running in ee9551cd38b9
Ign http://dl.google.com stable InRelease

Get:1 http://security.debian.org jessie/updates InRelease [44.9 kB]

.....

Get:9 http://deb.debian.org jessie/main amd64 Packages [9098 kB]

W: Fetched 10.1 MB in 6s (1519 kB/s)
Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead. …
Run Code Online (Sandbox Code Playgroud)

debian docker

81
推荐指数
3
解决办法
7万
查看次数

在 docker 中安装 ping 的问题

我正在尝试遵循 docker 教程,但是在虚拟机中。我尝试使用以下命令在 ubuntu docker 容器中安装 ping

sudo docker run ubuntu apt-get install ping
Run Code Online (Sandbox Code Playgroud)

问题是docker没有安装任何东西,给出的答案如下

$ sudo docker run ubuntu apt-get install ping
Reading package lists...
Building dependency tree...
Package ping is a virtual package provided by:
  inetutils-ping 2:1.8-6
  iputils-ping 3:20101006-1ubuntu1

E: Package 'ping' has no installation candidate
$
Run Code Online (Sandbox Code Playgroud)

当我尝试安装任何东西时会出现同样的问题。

这些是我的图像:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              3a28cc5bcc53        19 minutes ago      247.6 MB
baselDaemon         latest              4e892058b0b2        4 days ago          204.4 MB
ubuntu              13.10               9f676bd305a4        2 weeks ago …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu installation docker

79
推荐指数
3
解决办法
18万
查看次数

移除 docker0 网桥

我正在使用 docker 通过

# service docker start
Run Code Online (Sandbox Code Playgroud)

这创造了一个docker0桥梁。然而使用

# service docker stop
Run Code Online (Sandbox Code Playgroud)

不会移除这座桥。

我该如何摆脱它?我不确定我是否在这里遗漏了什么。

bridge docker

63
推荐指数
1
解决办法
7万
查看次数

docker-compose up/down 一个容器

我一直无法找到一种方法来在 docker-compose.yml 文件中只启动/关闭一个容器。我可以在不正常的情况下启动和停止单个容器,但我无法在两次重启之间更改容器配置(环境变量、挂载点等)

我在这里缺少什么?在这种情况下,最佳做法是什么?

docker

63
推荐指数
5
解决办法
9万
查看次数

如何使符号链接文件夹显示为普通文件夹

我有两个需要 dockerize 的 Dart 应用程序。这两个应用程序使用共享源目录。
因为 Docker 阻止从上下文目录 ( project/app1)之外的文件夹添加文件,所以我无法从../shared或从shared(内部的符号链接projects/app1)添加文件。

我正在寻找一种方法来欺骗 Docker 无论如何。

我的简化项目结构

- projects
  - app1
   - Dockerfile
   - shared (symlink ../shared)
   - otherSource
  - app2
   - Dockerfile
   - shared (symlink ../shared)
   - otherSource
  - shared
    - source
Run Code Online (Sandbox Code Playgroud)

我可以向上移动Dockerfile一级并docker build从那里运行,但随后我需要在同一目录中使用两个 Dockerfile(用于 app1 和 app2)。

我目前的想法是,如果我能以某种方式隐藏projects/app1/shared作为符号链接的事实,这个问题就会得到解决。我检查了是否可以projects使用 Samba进行共享并将其重新安装到其他地方,并将 Samba 配置为将符号链接视为普通文件夹,但还没有找到是否支持(我对 Samba 没有太多经验,还没有尝试过,只是搜索了一下) .

有没有其他工具或技巧可以做到这一点?

我宁愿不更改目录结构,因为这会导致其他麻烦,也不愿复制文件。

linux filesystems symbolic-link shared-folders docker

54
推荐指数
2
解决办法
4万
查看次数

docker.io 和 docker 有什么区别?

试图在这里学习 docker,但我对 docker.io 和 docker 之间的区别有点困惑。是docker.io守护程序服务器和docker客户端?为什么守护进程需要一直运行?

process daemon docker

51
推荐指数
5
解决办法
6万
查看次数

为什么 Alpine Docker 镜像比 Ubuntu 镜像慢 50% 以上?

我注意到我的 Python 应用程序在运行时比在 Ubuntu 上不使用 Docker时运行慢得多python:2-alpine3.6。我想出了两个小的基准测试命令,当我在 Ubuntu 服务器上运行它们时,以及当我在 Mac 上使用 Docker 时,两种操作系统之间都存在明显的差异。

$ BENCHMARK="import timeit; print(timeit.timeit('import json; json.dumps(list(range(10000)))', number=5000))"
$ docker run python:2-alpine3.6 python -c $BENCHMARK
7.6094589233
$ docker run python:2-slim python -c $BENCHMARK
4.3410820961
$ docker run python:3-alpine3.6 python -c $BENCHMARK
7.0276606959
$ docker run python:3-slim python -c $BENCHMARK
5.6621271420
Run Code Online (Sandbox Code Playgroud)

我还尝试了以下不使用 Python 的“基准”:

$ docker run -ti ubuntu bash
root@6b633e9197cc:/# time $(i=0; while (( i < 9999999 )); do (( i ++
)); done)

real …
Run Code Online (Sandbox Code Playgroud)

performance ubuntu docker alpine-linux

50
推荐指数
1
解决办法
3万
查看次数