Dockerfile搭建nodejs+sshd+express

1、下载基础镜像

docker pull ubuntu:latest

2、构建Dockerfile

#设置继承镜像
FROM ubuntu:latest
#提供一些作者的信息
MAINTAINER tpythoner [email protected]
#下面开始运行命令,此处更改ubuntu的源为国内163的源
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" >> /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list
RUN apt-get update
#安装 ssh 服务
RUN apt-get install -y openssh-server
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
#添加node到Docker
ADD node-v0.12.4-linux-x64.tar.gz /root
RUN mv /root/node-v0.12.4-linux-x64 /usr/local/node && cd /usr/local/bin && ln -s /usr/local/node/bin/* . && rm -rf /root/node-v0.12.4-linux-x64
#安装express
RUN npm install -g express
#开放端口
EXPOSE 22
EXPOSE 3000
#设置自启动命令
CMD ["/run.sh"]

3、根据Dockerfile创建镜像

docker build -t ubuntu:nodejs .

    1. run.sh文件内容

#!/bin/bash
/usr/sbin/sshd -D &
/bin/bash

    2. node-v0.12.4-linux-x64.tar.gz

wget http://nodejs.org/dist/v0.12.4/node-v0.12.4-linux-x64.tar.gz

    3. authorized_keys

cat ~/.ssh/id_rsa.pub >> ./authorized_keys

4、运行

docker run -i -t -d -p 3000:3000 -p 2002:22 -v /Users/Name/Code/:/home ubuntu:nodejs



你可能感兴趣的:(SSHD,nodejs,express,docker,dockerfile)