如何交互式地创建一个Docker容器

2025-04-22 16:38:35
推荐回答(2个)
回答1:

docker跟宿主机交互的是通过原生网络实现的。当Docker进程启动之后,它会配置一个虚拟的网桥叫docker0在宿主机上。这个接口允许Docker去分配虚拟的子网给即将启动的容器们。这个网桥在容器内的网络和宿主机网络之间将作为接口的主节点。Docker容器启动后,将创建一个新的虚拟接口并分配一个网桥子网内的IP地址。这个IP地址嵌在容器内网络中,用于提供容器网络到宿主机docker0网桥上的一个通道。Docker自动配置iptables规则来放行并配置NAT,连通宿主机上的docker0,就可以访问宿主机的mysql数据文件了。

回答2:

创建一个安全的Docker基镜像的方法
** 构建一个Java环境基镜像 **

正如我刚解释的,Alpine Linux是一个构建自有镜像时不错的选择,因此,我们在此将使用它来构建简洁高效的Docker镜像,我们开始吧!

组合:Alpine + bash

每个Dockerfile第一个指令都是指定它的父级容器,通常是用于继承,在我们的例子中是alpine:latest:
sh

FROM alpine:latest

MAINTAINER cSphere

RUN apk add --no-cache --update-cache bash

CMD ["/bin/bash"]

```

好了,现在我们构建容器:
sh

$ docker build -t my-java-base-image >

---> Running in 63433312d77e

---> bfe94713797a

Removing intermediate container 63433312d77e

... 省略若干行

Step 4 : CMD /bin/bash

---> Running in d2291684b797

---> ecc443d68f27

Removing intermediate container d2291684b797

Successfully built ecc443d68f27

并且运行它:
sh

$ docker run --rm -ti my-java-base-image

bash-4.3#

成功了!我们有了一个运行着bash的Alpine Linux。