docker映象構建sshd服務

2021-08-27 11:04:09 字數 2843 閱讀 4575

系統環境 centos7.4 容器系統centos latest 預設啟動服務sshd

第一步、新建dockerfile檔案

from docker.io/centos

run yum -y install openssh-server && \

ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key && \

sed -i "/^#port 22/cport 1022" /etc/ssh/sshd_config && \

echo "root:root" | chpasswd && \

yum clean all

cmd ["/usr/sbin/sshd", "-d"]

sed -i 「/^#port 22/cport 1022」 查詢以#port 22為開頭的行,並替換為port 1022

第二步、構建映象

docker build -t sshd .
-t選項後跟映象的名字 . 代表當前dockerfile所在目錄的路徑為當前目錄

第三步、啟動容器

docker run --privileged -i -d --net host --name 容器名 映象id
備註:–net 引數指定指定使用物理網路 值為:host

參考資料:

第一步:建立自定義網路

docker network create --subnet=172.172.0.0/24 docker-br0
建立網橋之後,使用ifconfig檢視 會多出乙個網橋,該網橋在docker啟動或者重啟之後,會自動顯示出來。永久的,可以使用docker network rm docker-br0 移除網橋。

第二步、新建dockerfile檔案

from docker.io/centos

run yum -y install openssh-server && \

ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key && \

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key && \

ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key && \

echo "root:root" | chpasswd && \

yum clean all

cmd ["/usr/sbin/sshd", "-d"]

備註:命令解釋

echo 「使用者名稱:密碼」 | 修改使用者密碼的命令

echo 「root:root」 | chpasswd

第三步、構建映象

docker build -t sshd .
第四步、以固定ip啟動容器

docker run --privileged -i -d --net docker-br0 --ip 172.172.0.10 --name 容器名 映象id
–privileged選項以root許可權啟動容器

dockerfile檔案內容

from alpine

run set -ex \

\#修改時區

&& apk add --no-cache --virtual tzdata \

&& cp -r -f /usr/share/zoneinfo/asia/shanghai /etc/localtime \

&& rm -rf /usr/share/zoneinfo/* \

#安裝遠端服務

&& apk add --no-cache --virtual openssh \

#修改sshd服務埠號:目的(防止啟動容器時使用主機網路--net host ,造成埠衝突)

&& sed -i "/^#port 22/cport 1022" /etc/ssh/sshd_config \

#允許root使用者遠端登陸

&& sed -i "/^#permitrootlogin/cpermitrootlogin yes" /etc/ssh/sshd_config \

&& sed -i "/^#strictmodes yes/cstrictmodes yes" /etc/ssh/sshd_config \

&& sed -i "/^#logingracetime 2m/clogingracetime 2m" /etc/ssh/sshd_config \

#處理sshd服務啟動報錯(sshd re-exec requires execution with an absolute path)

&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \

&& ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key \

&& ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key \

#修改root使用者密碼「使用者名稱:密碼」

&& echo "root:root" | chpasswd

cmd ["/usr/sbin/sshd", "-d"]

apk映象搜尋

docker構建映象

做映象就是構建映象!提交容器更改,生成新的映象!docker commit 容器名 新映象的名字 tag 例如 將web2容器提交為乙個新的映象,新映象的名字為nginx 1.1 在docker中映象的儲存方式是分層儲存的!每個映象都會有不同層數!映象的層數只能增加不能減少!映象是唯讀的!裡面的記憶...

docker構建映象

建立docker映象有兩種方法。1。docker commit 這種不推薦,就不介紹了。2。用docker build命令和dockerfile檔案 下面構建乙個nginx小應用。建立資料夾 mkdir static web 進入這個資料夾 cd static web 建立dockerfile檔案 ...

Docker 構建映象

docker 構建映象 1 首先,在專案的根目錄下,新建乙個文字檔案.dockerignore,寫入下面的內容。git node modules npm debug.log 2 然後在專案的根目錄下,新建乙個文字檔案 dockerfile,寫入下面的內容。run npm install regist...