我有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 stop $(docker ps -q)
docker rm $(docker ps -a -q)
Run Code Online (Sandbox Code Playgroud)
但我不想删除名为"my_docker"的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 v1.12.3。我知道默认docker attach选项--sig-proxy=true,但我想知道是否可以默认更改为false?
我有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个容器我有问题.如何使用单个或多个命令断开此网络中的所有容器?
我有一个比较文件的小脚本
import filecmp
filecmp.cmp(path1, path2)
Run Code Online (Sandbox Code Playgroud)
True如果文件相似则此代码返回,但False如果换行符不同则返回。path1有 Linux 换行符和path2Windows 换行符。我想知道True文件是否仅与换行符不同。不编辑文件可以吗?
我有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容器?