連線 Docker Container 的幾種方式

2021-09-20 20:39:43 字數 1774 閱讀 3990

經過熟悉之後,在 docker 裡安裝了乙個 ubuntu 準備學習使用。然後遇到了一些問題:使用 docker run -d ubuntu 之後,container在執行之後馬上退出了。

原因很簡單,在docker run 之後沒有命令引數,新增 bash 就可以了:

docker run 

-d ubuntu

/bin

/bash

執行是執行了,在 docker pa -a 中也可以看到 container 跑的正歡快,問題來了:怎麼和它交流?發現官方版 ubuntu 是不像之前裝的 oracle 一樣自動開啟 ssh 的(經過觀察這部分是寫在之前 dockerfile 裡的),但是想要進入 container 自己還只會使用 ssh。所以我嘗試了 docker attach [container id]。成功了,但是也有缺點,在我退出 shell 的時候,該 container 也被關閉了。這肯定不是官方優雅的姿勢。

經過 google 發現了這篇文章。裡面介紹最推薦的是使用 nsenter,這裡照抄下安裝方式:

這個程式的安裝方式很獨特,使用docker進行安裝:

docker run 

--rm -v

/usr

/local

/bin

:/target jpetazzo/

nsenter

使用方法也很簡單,首先你要進入的container的pid:

$ pid=$

(docker inspect

--format

})

然後就可以用這個命令進入container了:

$ nsenter 

--target $pid

--mount

--uts

--ipc

--net

--pid

為了使用方便可以寫乙個指令碼自動完成:

$ cat /bin/denter

#!/bin/bash

sudo nsenter –target `docker inspect –format } $1` –mount –uts –ipc –net –pid bash

這樣每次要進入某個 container 只需要執行denter就可以了。

在安裝之後,發現重啟 docker 之後命令就失效了。在 nsenter 官方 github 中找到解答:

if you are using boot2docker, you can use the function below, to:

install nsenter and docker-enter into boot2docker』s /var/lib/boot2docker/ directory, so they survive restarts.

execute docker-enter inside of boot2docker combined with ssh

>

docker

-enter

()>

you can use it directly from your host (os x/windows), no need to ssh into boot2docker.

我並不希望使用 ssh 來連線 docker 所以只需要將前面安裝命令中的路徑修改為/var/lib/boot2docker/就可以了

debian社群」,了解相關資訊可以關注「

debian社群」。

內連線,外連線,左連線,右連線,全連線

連線是指將關聯式資料庫中的兩個表根據內容一定的條件連線成乙個表.內連線是最常用的鏈結,也叫等值鏈結,最常見的格式是 selecta.b.fromta as a tb as b wherea.id b.id 或者 selecta.b.fromtaasainnerjoin tbasb on a.id b...

連線 交叉連線 內連線 外連線 自連線

本文非原創 可分為 交叉連線 內連線 外連線 自連線 1.使用交叉連線 它是非限制連線,就是將兩個 不加任何條件的組合在一起,即第乙個 的所有記錄分別和第二個 的每一條記錄相連線 組合成新的記錄,連線後結果集的行數是兩個 的行數的乘積,列為兩表列之和。語法 1 select 列名列表 from 表名...

左連線,右連線,內連線,自連線

最近公司在招人,同事問了幾個自認為資料庫可以的應聘者關於庫連線的問題,回答不盡理想 現在在這寫寫關於它們的作用 假設有如下表 乙個為投票主表,乙個為投票者資訊表 記錄投票人ip及對應投票型別,左右連線實際說是我們聯合查詢的結果以哪個表為準 1 如右接連 right join 或 right oute...