簡體   English   中英

如何進入這個 dockerfile / nginx 容器?

[英]How do I enter this dockerfile / nginx container?

使用 docker 容器中的 centos,我只需輸入“docker attach 容器 ID”,它就會將我帶到 shell 提示符,在那里我可以安裝和配置 nginx。

這個更簡單: docker.com dockerfile/nginx您只需運行該文件,一切都已安裝和配置。

但我不知道如何進入和訪問文件。

就我而言,標准 bash 不存在。 使用 /bin/sh 幫助了我:

docker run -it -p 80:80 dockerfile/nginx /bin/sh

UPDATE (稍后介紹的更簡單的方法):

docker exec -t -i container_name /bin/bash

原答案

實際上,您也可以訪問正在運行的容器。

查找容器的 ID:

docker ps

導出運行容器的進程的 ID:

PID=$(docker inspect --format '{{.State.Pid}}' my_container_id)

通過更改命名空間“連接”到它:

nsenter --target $PID --mount --uts --ipc --net --pid

最初這是在這里描述的: http : //jpetazzo.github.io/2014/03/23/lxc-attach-nsinit-nsenter-docker-0-9/

首先確保了解圖像和容器之間的區別。 運行圖像:

docker run -d -p 80:80 dockerfile/nginx

創建一個僅執行 nginx 的新容器。 這個過程不像 shell 那樣交互。 如果您確實需要在容器運行時訪問其中的文件,您唯一的選擇是使用 nsinit、nsenter 或 lxc-attach。 有關詳細信息, 查看https://blog.codecentric.de/en/2014/07/enter-docker-container/

或者,您可能想嘗試

docker run -it -p 80:80 dockerfile/nginx /bin/bash

它創建了一個執行交互式 shell 而不是 nginx 的新容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM