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

 更新时间:2021年07月12日 08:37:50   作者:得超  
这篇文章主要介绍了docker 基于golang镜像构建 ssh服务的方法,添加goland环境变量的方法及centos下sshd和goland环境的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服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器网络端口配置过程详解

    Docker容器网络端口配置过程详解

    这篇文章主要介绍了Docker容器网络端口配置过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • docker迁移数据目录的方法步骤

    docker迁移数据目录的方法步骤

    本文主要介绍了docker迁移数据目录的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 阿里云ECS部署Docker服务的实现步骤

    阿里云ECS部署Docker服务的实现步骤

    本文主要介绍了阿里云ECS部署Docker服务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • docker image删不掉的解决办法

    docker image删不掉的解决办法

    在使用Docker的时候遇到删不掉image的情况,怎么回事,如何解决呢?下面小编给大家分享下docker image删不掉的解决办法,需要的朋友参考下吧
    2017-01-01
  • Docker网络配置及部署SpringCloud项目详解

    Docker网络配置及部署SpringCloud项目详解

    bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上,下面这篇文章主要给大家介绍了关于Docker网络配置及部署SpringCloud项目的相关资料,需要的朋友可以参考下
    2023-01-01
  • docker容器日志查看常用命令及线上日志排查

    docker容器日志查看常用命令及线上日志排查

    这篇文章主要给大家介绍了关于docker容器日志查看常用命令及线上日志排查的相关资料, Docker是一种容器化技术,使用它的过程中需要查看Docker的日志输出来调试或解决问题,需要的朋友可以参考下
    2024-01-01
  • 修改docker容器端口映射到主机的方法实现

    修改docker容器端口映射到主机的方法实现

    Docker容器的端口映射是通过docker run命令来启动容器,并指定端口映射参数,本文主要介绍了修改docker容器端口映射到主机的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 如何通过Jenkins定期清理为None的镜像详解

    如何通过Jenkins定期清理为None的镜像详解

    这篇文章主要给大家介绍了关于如何通过Jenkins定期清理为None的镜像的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 详解Dockerfile 中的 COPY 与 ADD 命令

    详解Dockerfile 中的 COPY 与 ADD 命令

    Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。感兴趣的朋友跟随小编一起看看吧
    2018-09-09
  • 10分钟学会docker

    10分钟学会docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
    2017-06-06

最新评论