日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

【系列1】使用Dockerfile创建带sshd服务的Centos Docker镜像

發布時間:2023/12/18 centos 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【系列1】使用Dockerfile创建带sshd服务的Centos Docker镜像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ?? 使用Dockerfile創建
? 在第一部分中曾介紹過Dockerfile的基礎知識,下面將介紹如何使用Dockerfile來創建一個支持SSH服務的鏡像。
?① 創建工作目錄
?首先應創建一個sshd_centos工作目錄:
[root@docker1 ~]# mkdir sshd_centos
[root@docker1 ~]# cd sshd_centos/
[root@docker1 sshd_centos]# touch Dockerfile run.sh
[root@docker1 sshd_centos]# ls
Dockerfile ?run.sh ?

?② 編寫run.sh腳本和authorized_keys文件
[root@docker1 sshd_centos]# vim run.sh
#!/bin/bash
/usr/sbin/sshd -D ?
在宿主主機上生成SSH密鑰對,并創建authorized_keys文件:
# ssh-keygen -t rsa
....
# cat ~/.ssh/id_rsa.pub >authorized_keys ?
? ? 或[root@docker1 ~]# cp /root/.ssh/id_rsa.pub /root/sshd_centos/authorized_keys

?③ 編寫Dockerfile
?下面是Dockerfile的內容及各部分的注釋:
[root@docker1 sshd_centos]# cat Dockerfile
#設置繼承鏡像
FROM docker.io/centos:latest

#提供一些作者的信息
MAINTAINER from www.dockerpool.com by waitfish

#設置環境變量,所有操作都是非交互式的
ENV DEBIAN_FRONTEND noninteractive

RUN echo "Asia/Shanghai" > /etc/timezone #&& \
? ? ? ? # dpkg-reconfigure -f noninteractive tzdata ? ? ?#這也是設置時區的
#注意這里要更改系統的時區設置,因為在Web應用中經常會用到時區這個系統變量,默認的centos會讓你的應用此程序發生不可思議的效果哦

#下面開始運行命令,此處更改Centos的源為國內阿里的源
RUN yum update
RUN yum install wget -y
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum repolist

#安裝ssh服務
RUN yum install -y openssh-server
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key

RUN mkdir -p /var/run/sshd
RUN mkdir -p /root/.ssh

#取消pam限制
RUN sed -ri 's/session ? ?required ? ? pam_loginuid.so/#session ? ?required ? ? pam_loginuid.so/g' /etc/pam.d/sshd ?

#復制配置文件到相應位置,并賦予腳本可執行權限
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh

#開放端口
EXPOSE 22

#設置自啟動命令
CMD ["/run.sh"]
?
④ 創建鏡像
在sshd_centos目錄下,使用docker build
[root@docker1 sshd_centos]# docker build -t sshd:centos .
如果使用Dockerfile創建自定義鏡像,那么需要注意的是Docker會自動刪除中間臨時創建的層,還需要注意每一步的操作和編寫的Dockerfile中命令的對應關系。
命令執行完畢后,如果可見"Successfully built XXX"字樣,則說明鏡像創建成功。可以看到,
[root@docker1 ~]# docker images
REPOSITORY ? ? ? ? ? TAG ? ? ? ? ? ? ? ? IMAGE ID ? ? ? ? ? ?CREATED ? ? ? ? ? ? SIZE
sshd ? ? ? ? ? ? ? ? centos ? ? ? ? ? ? ?fbbedf7fb2a1 ? ? ? ?16 hours ago ? ? ? ?301.9 MB
......


⑤ 測試鏡像,運行容器
?使用剛才創建的sshd:centos鏡像來運行一個容器。直接啟動鏡像,映射容器的22端口到本地的10122端口:
[root@docker1 ~]# docker run -d -p 10122:22 sshd:centos
c72fecc1e7c62a4113a1ff6673b55f43e24cac66ad29ad2d339df0ee793e4928
[root@docker1 ~]# docker ps
CONTAINER ID ? ? ? ?IMAGE ? ? ? ? ? ? ? COMMAND ? ? ? ? ? ? ? ? ?CREATED ? ? ? ? ? ? STATUS ? ? ? ? ? ? ?PORTS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NAMES
c72fecc1e7c6 ? ? ? ?sshd:centos ? ? ? ? "/run.sh" ? ? ? ? ? ? ? ?10 seconds ago ? ? ?Up 8 seconds ? ? ? ?0.0.0.0:10122->22/tcp ? ? ? ? ? ? ? ? ? ? ?hopeful_goldwasser ? ?
在宿主主機新打開一個終端,連接到新建的容器:
Last login: Tue Nov 14 09:51:22 2017 from 10.0.0.1
[root@docker1 ~]# ssh 10.0.0.10 -p 10122
The authenticity of host '[10.0.0.10]:10122 ([10.0.0.10]:10122)' can't be established.
RSA key fingerprint is SHA256:X3Rf7GKXCkxhFYpc5SkiKScYHq7tuVidbbc3YaJk/yg.
RSA key fingerprint is MD5:de:7b:00:00:90:ec:f0:51:35:4a:66:60:49:a2:42:f2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.0.0.10]:10122' (RSA) to the list of known hosts.
[root@c72fecc1e7c6 ~]# exit
logout
Connection to 10.0.0.10 closed.
[root@docker1 ~]# ssh 10.0.0.10 -p 10122
Last login: Tue Nov 14 02:07:17 2017 from 10.0.0.10
[root@c72fecc1e7c6 ~]# exit
logout
Connection to 10.0.0.10 closed.

轉載于:https://blog.51cto.com/sf1314/1981499

總結

以上是生活随笔為你收集整理的【系列1】使用Dockerfile创建带sshd服务的Centos Docker镜像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。