小编nic*_*bpe的帖子

Dockerfile if else条件与外部参数

我有dockerfile

FROM centos:7
ENV foo=42
Run Code Online (Sandbox Code Playgroud)

然后我建立它

docker build -t my_docker .
Run Code Online (Sandbox Code Playgroud)

并运行它.

docker run -it -d  my_docker
Run Code Online (Sandbox Code Playgroud)

是否可以从命令行传递参数并在Dockerfile中使用if else?我的意思是

FROM centos:7
if (my_arg==42)
     {ENV=TRUE}
else:
     {ENV=FALSE}
Run Code Online (Sandbox Code Playgroud)

并使用此参数构建.

 docker build -t my_docker . --my_arg=42
Run Code Online (Sandbox Code Playgroud)

docker dockerfile

86
推荐指数
10
解决办法
9万
查看次数

删除除一个以外的所有Docker容器

我有脚本停止容器,然后删除它们

docker stop $(docker ps -q)
docker rm $(docker ps -a -q)
Run Code Online (Sandbox Code Playgroud)

但我不想删除名为"my_docker"的docker容器.

如何删除除此之外的所有容器?

docker

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

从 docker 容器复制具有给定扩展名的所有文件

我有一个正在运行的 docker 容器,某些文件夹中包含一些文件。其中一些文件具有“.jar”扩展名。我正在尝试将其复制到本地主机上。

docker cp aaaaaaa:/opt/some/path/in/docker/folder/*.jar  /mnt/lib/
Run Code Online (Sandbox Code Playgroud)

但我有错误。

Error response from daemon: lstat /var/lib/docker/devicemapper/mnt/bbbbbbbb/rootfs/opt/some/path/in/docker/folder/*.jar: no such file or directory 我应该怎么做才能将 docker 文件夹中的所有文件复制到本地主机?

docker

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

将 Docker 附加选项 --sig-proxy=false 设置为默认值

我正在使用 docker v1.12.3。我知道默认docker attach选项--sig-proxy=true,但我想知道是否可以默认更改为false

docker

5
推荐指数
1
解决办法
5230
查看次数

Docker断开所有容器与docker网络的连接

我有docker网络"my_network".我想删除这个docker网络docker network rm my_network.在此之前,我应该断开我的所有容器与此网络.我可以使用docker network inspect并获得输出

[
    {
        "Name": "my_network",
        "Id": "aaaaaa",
        "Scope": "some_value",
        "Driver": "another_value",
        "EnableIPv6": bool_value,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.0.0.0/1"
                }
            ]
        },
        "Internal": false,
        "Containers": {
            "bbb": {
                "Name": "my_container_1",
                "EndpointID": "ENDPOITID1",
                "MacAddress": "MacAddress1",
                "IPv4Address": "0.0.0.0/1",
                "IPv6Address": ""
            },
            "ccc": {
                "Name": "my_container_2",
                "EndpointID": "ENDPOINTID2",
                "MacAddress": "MacAddress2",
                "IPv4Address": "0.0.0.0/2",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
Run Code Online (Sandbox Code Playgroud)

如果我只有几个容器可以手动断开,但如果我有50个容器我有问题.如何使用单个或多个命令断开此网络中的所有容器?

bash docker docker-networking

5
推荐指数
1
解决办法
2353
查看次数

如何使用 python filecmp 忽略不同的换行符

我有一个比较文件的小脚本

import filecmp
filecmp.cmp(path1, path2)  
Run Code Online (Sandbox Code Playgroud)

True如果文件相似则此代码返回,但False如果换行符不同则返回。path1有 Linux 换行符和path2Windows 换行符。我想知道True文件是否仅与换行符不同。不编辑文件可以吗?

python python-2.7

4
推荐指数
1
解决办法
3096
查看次数

如何在不进入容器的情况下运行docker容器

我有Dockefile

FROM centos:7
Run Code Online (Sandbox Code Playgroud)

所以我在dockerfile中没有入口点.然后我将它构建成图像

sudo docker build -t my_container .
Run Code Online (Sandbox Code Playgroud)

然后我开始吧.

sudo docker run -t my_container
Run Code Online (Sandbox Code Playgroud)

然后我开放tty到容器

root@my_container_id/
Run Code Online (Sandbox Code Playgroud)

如果我开始它没有-t它开始后立即停止.如何在没有start tty和没有入口点的情况下运行docker容器?

bash docker

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