概述
本文主要描述在linux中如何创建并使用docker在容器中创建一个node.js可运行的环境
- node.js
- pm2
- ansible
- docker
安装docker
这里我使用的系统是Fedora 28
dnf install docker # 安装docker
# 配置文件 /etc/sysconfig/docker
chkconfig docker on # 加入开机启动
service docker start # 启动docker服务
创建docker启动并附着上去
# 使用镜像创建容器
docker run -i -t centos:7 /bin/bash # 创建一个容器,让其中运行 bash 应用,退出后容器关闭
- 如果之前创建过的容器想从新启动并附着上去
docker ps #查看当前启动的容器CONTAINER ID 假如的是:d12c34b4bb77
#附着上去
docker attach d12c #这里可以写ID也可以写name id只写四位也是可以的
#这时候输入密码就可以进去了
安装必要的软件
- 安装 openssh-server
yum install openssh-server
#安装完毕之后还需要配置公钥
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
#配置完成之后,启动sshd
/usr/sbin/sshd
#可以查询一下后台是否已经启动
ps -aux
#启动成功后,这时候你就可以在物理机上进行访问他了 例如: ssh root@172.17.0.2 输入密码就可以访问了
- 修改root密码
passwd #这里输入新密码两次就更改成功了
- 安装vim
yum install vim #安装完成之后,如果出现中文乱码
vim /etc/vimrc #在文件中加一行 set encoding=utf-8 保存即可
- 安装node.js
#官网下载 或者使用docker cp命令拷贝过来
docker cp <路径 or 文件> <容器ID or name>:<路径>
docker cp <容器ID or name>:<路径 or 文件> <路径>
#下载好文件之后
tar zxvf <文件名> #进行解压
#这里需要在设置一下软连接一般我都设置在 /usr/local/bin/ 中
#我这里写的 /data/node/bin/ 是我node.js的安装目录 你使用的时候换成你的目录就可以了
ln -s /data/node/bin/* /usr/local/bin/ #*是表示把bin中的所以都建立软连接
#假如你当前就在 /usr/local/bin/ 这个目录下 你可以这么写
ln -s /data/node/bin/* . #这个.则表示,把软连接地址建立在当前目录下
- 下载pm2
#一般情况下我们使用国外的镜像地址下载
npm install -g pm2 # 但是下载速度感人,我推荐使用国内taobao镜像
#临时使用taobao镜像地址进行下载pm2
npm --registry https://registry.npm.taobao.org install -g pm2
#这里加上-g是进行的全局安装,安装结束后也需要进行建立软连接跟 上文一样即可命令稍微有一点区别
ln -s /data/node/bin/pm2* . #这里多了一个pm2* 则表示pm2为开头的应用程序都建立连接
- 最后一步 创建authorized_keys让物理机可以通过ansible免密访问
#生成系统公钥私钥
ssh-keygen -t rsa
#创建authorized_keys文件 目录在 /root/.ssh/
cd
cd .ssh/
touch authorized_keys
#然后复制物理机中的公钥 黏贴到authorized_keys文件中 保存即可无秘访问了
这些都是自己在适用docker碰到的,记录下来,以后在用到的时候,可以复习,避免再次踩坑