Node.js Docker容器在is主机上生成Docker容器

Node.js Docker容器在is主机上生成Docker容器,node.js,docker,Node.js,Docker,我有一个生成docker容器的NodeJS服务器。我想将节点js服务器放在docker容器上,但如果我这样做,服务器将在其容器内生成容器 如何为服务器在主机上生成容器?主机上的Docker守护进程侦听/var/run/Docker.sock 如果将该套接字装入docker容器中,则容器内执行的docker命令基本上会从主机发送到docker守护进程 一个简单的例子是从docker图像运行一个容器,然后进行游戏: docker run -ti -v /var/run/docker.sock:/va

我有一个生成docker容器的NodeJS服务器。我想将节点js服务器放在docker容器上,但如果我这样做,服务器将在其容器内生成容器


如何为服务器在主机上生成容器?

主机上的Docker守护进程侦听
/var/run/Docker.sock

如果将该套接字装入docker容器中,则容器内执行的docker命令基本上会从主机发送到docker守护进程

一个简单的例子是从
docker
图像运行一个容器,然后进行游戏:

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker

// Create a new container from the container
# docker run alpine

// List the containers running on the host, from the container:
docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
b6f70442d667        alpine              "/bin/sh"                3 seconds ago       Exited (0) 2 seconds ago                       nifty_sinoussi
0cd034af9ebc        docker              "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes                                   determined_raman
请注意,虚拟容器是在主机上创建的。退出docker容器并检查主机上的alpine容器:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
b6f70442d667        alpine              "/bin/sh"                2 minutes ago       Exited (0) 2 minutes ago                       nifty_sinoussi
0cd034af9ebc        docker              "docker-entrypoint.s…"   11 minutes ago      Exited (0) 3 seconds ago                       determined_raman

主机上的Docker守护进程侦听
/var/run/Docker.sock

如果将该套接字装入docker容器中,则容器内执行的docker命令基本上会从主机发送到docker守护进程

一个简单的例子是从
docker
图像运行一个容器,然后进行游戏:

docker run -ti -v /var/run/docker.sock:/var/run/docker.sock docker

// Create a new container from the container
# docker run alpine

// List the containers running on the host, from the container:
docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
b6f70442d667        alpine              "/bin/sh"                3 seconds ago       Exited (0) 2 seconds ago                       nifty_sinoussi
0cd034af9ebc        docker              "docker-entrypoint.s…"   8 minutes ago       Up 8 minutes                                   determined_raman
请注意,虚拟容器是在主机上创建的。退出docker容器并检查主机上的alpine容器:

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
b6f70442d667        alpine              "/bin/sh"                2 minutes ago       Exited (0) 2 minutes ago                       nifty_sinoussi
0cd034af9ebc        docker              "docker-entrypoint.s…"   11 minutes ago      Exited (0) 3 seconds ago                       determined_raman

请记住,如果您可以运行任何
docker
命令,那么您可以非常轻松地为主机设置根目录。例如,在安装了Docker套接字的容器中,您可以
Docker运行-v/:/host busybox vi/host/etc/shadow
并重置主机系统的根密码。如果你这样做的话,对基本的安全措施(比如外壳注入攻击)要非常小心。记住,如果你能运行任何
docker
命令,你就可以很容易地为主机设置根目录。例如,在安装了Docker套接字的容器中,您可以
Docker运行-v/:/host busybox vi/host/etc/shadow
并重置主机系统的根密码。如果你这样做的话,要非常小心基本的安全措施(比如外壳注入攻击)。