下面給大家介紹下docker 基于golang鏡像構建 ssh服務的代碼,具體內容如下所示:
# golang:latest鏡像
FROM ee23292e2826
# 作者
MAINTAINER dechao@qq.com
# 添加Golang環境變量
ENV GOPROXY https://goproxy.cn,direct
ENV GO111MODULE on
# 配置apt-get源
ADD sources.list /etc/apt/
# 更新apt-get源 安裝ssh服務 修改root密碼 配置ssh服務允許root遠程登錄 寫"開啟ssh服務 寫地址信息到/root/ip.txt 并tail -f"到/root/ip.sh 賦予ip.sh執行權限
RUN apt-get update \
&& apt-get -y install ssh \
&& echo "root:1" | chpasswd \
&& echo "PermitRootLogin yes" >> /etc/ssh/sshd_config \
&& echo "service ssh start && ip addr | grep global > /root/ip.txt && tail -f /root/ip.txt" > /root/ip.sh \
&& chmod +x /root/ip.sh
# 啟動時執行
ENTRYPOINT ["sh","-l"]
CMD ["/root/ip.sh"]
-p 主機地址:主機端口:容器端口
-v 主機卷:容器卷
docker run -itd -p 2222:22 -v /root/fserver/:/go/src/fserver 4618
PS:基于CentOS下sshd和golang環境的Docker
1、Dockerfile文件
#繼承centos7鏡像
FROM centos:centos7
MAINTAINER tpythoner tpythoner@gmail.com"
#yum安裝sshd服務
#RUN yum install -y openssh openssh-server openssh-clients
RUN yum install -y openssh-server
#創建sshd
RUN mkdir /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#設置root密碼以及添加tpythoner用戶
RUN /bin/echo 'root:mypwd' |chpasswd
RUN useradd tpythoner
RUN /bin/echo 'tpythoner:mypwd' |chpasswd
#取消pam限制
RUN /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
#安裝golang
#RUN yum install -y wget
#RUN wget http://golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz
#RUN tar zxvf go1.4.2.linux-amd64.tar.gz -C /usr/local/
ADD go1.4.2.linux-amd64.tar.gz /root
ADD golang.conf /root/golang.conf
RUN mv /root/go /usr/local/
#RUN echo "export GOROOT=/usr/local/go" >> /etc/profile
#RUN echo "export GOBIN=$GOROOT/bin" >> /etc/profile
#RUN echo "export PATH=$PATH:$GOBIN" >> /etc/profile
#RUN echo "export GOPATH=/home/golang" >> /etc/profile
RUN cat /root/golang.conf >> /etc/profile
RUN echo "source /etc/profile" >> /root/.bashrc
RUN mkdir -p /home/golang
#開發端口
EXPOSE 22
EXPOSE 80
#啟動sshd服務
CMD /usr/sbin/sshd -D
2、golang.conf
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/home/golang
3、下載go1.4.2.linux-amd64.tar.gz
wget http://golangtc.com/static/go/go1.4.2.linux-amd64.tar.gz
4、創建新的docker images
docker build -rm -t centos:go_sshd .
5、運行鏡像生成容器
docker run -d -p 2222:22 -p 80:80 centos:go_sshd
#如果遇到WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
echo '' >> ~/.ssh/known_hosts
6、連接go_sshd容器
ssh root@192.168.59.103 -p 2222 #ip為容器ip 密碼為Dockerfile中的:mypwd
到此這篇關于docker 基于golang鏡像構建 ssh服務的文章就介紹到這了,更多相關docker構建 ssh服務內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!