docker 基于golang镜像构建 ssh服务的方法_docker

来源:脚本之家  责任编辑:小易  

下面给大家介绍下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服务内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!


  • 本文相关:
  • idea使用docker插件(菜鸟教程)
  • dockerfile指令详解
  • docker常用命令study03详解
  • docker-compose部署配置jenkins的详细教程
  • docker部署tomcat及web应用的实现
  • docker compose部署及基础使用详解
  • dockerfile中cmd和entrypoint命令详解
  • docker 部署django项目的方法示例
  • 详解docker源码编译安装
  • docker部署django+mysql+redis+gunicorn+nginx的实现
  • 搭建基于Docker的PHP开发环境的详细教程
  • 如何开发基于docker的python 应用
  • 搭建基于Docker的PHP开发环境的详细教程
  • 基于docker的持续发布都要解决哪些问题
  • 如何基于Docker快速搭建多节点Hadoop集群
  • 如何基于Docker快速搭建多节点Hadoop集群
  • 如何基于Docker快速搭建多节点Hadoop集群
  • jenkins docker镜像是基于什么系统的
  • 如何开发一个基于 Docker 的 Python 应用
  • 国内的基于Docker容器技术的创业公司有哪些典型的客户案列...
  • 如何开发一个基于 Docker 的 Python 应用
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云计算技术云其它首页服务器云和虚拟化idea使用docker插件(菜鸟教程)dockerfile指令详解docker常用命令study03详解docker-compose部署配置jenkins的详细教程docker部署tomcat及web应用的实现docker compose部署及基础使用详解dockerfile中cmd和entrypoint命令详解docker 部署django项目的方法示例详解docker源码编译安装docker部署django+mysql+redis+gunicorn+nginx的实现docker获取镜像报错docker: errodocker 给运行中的容器设置端口映docker.service启动失败:unit ndocker 清理命令集锦浅谈docker-compose网络设置之neubuntu14.04+docker的安装及使用docker容器访问宿主机网络的方法docker容器如何优雅的终止详解详解如何使用docker部署一个web项ubuntu vps安装docker报错:cannlinux系统docker 部署 asp.net core应用的docker部署tomcat及web应用的实现在docker中利用tomcat快速部署web应用的方关于docker容器优雅退出的问题详解docker 默认bridge网络中配置dns的方法浅谈docker-compose网络设置之networksalpine镜像中telnet转移至busybox-extras详解将本地docker容器迁移到服务端docker nginx log 三者的处理详解详解docker中使用systemctl启动服务报错的
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved