系統環境 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...