下面给各人先容下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服务内容请搜索脚本之家从前的文章或继续欣赏下面的相关文章希望各人以后多多支持脚本之家! |