一、运行环境准备
1、安装Docker Toolbox
Docker Toolbox 安装包包含了:
docker 客户端
docker-machine 工具
docker-compose 工具
Kitematic 一个Docker的GUI
我们可以在官网下载并安装
2、创建一台新的Docker Machine
docker-machine create -driver virtualbox dockerhost
dockerhost是数组机名称
3、设置环境变量
为了让本地的 docker 客户端了解需要连接的 docker 目标服务器地址,因此需要设置环境变量
eval “$(docker-machine env dockerhost)"
4、利用docker安装node镜像
docker pull node
5、利用docker安装nginx镜像
docker pull nginx
6、查看数组机(dockerhost)的ip
docker-machine ip dockerhost
二、准备部署代码
1、新建一个文件夹ssr,将打包之后的代码(dist文件夹)放入ssr文件夹中
2、将server.js放入ssr文件夹中,server.js文件内容如下
3、将package.json文件放入ssr文件夹中
4、将ssr压缩成zip格式的,再将ssr.zip从主机中拷入数组机中
docker scp ~/www/ssr.zip dockerhost:/home/docker/ssr.zip
需要注意的是,拷贝路径必须是绝对路径
5、进入数组机中用ls命令可以看到ssr.zip文件,解压ssr.zip
docker-machine ssh dockerhost
ls
unzip ssr.zip
三、自定义pm2镜像
1、进入解压后的文件夹ssr
cd ssr
2、创建并编辑process.yml文件
vi process.yml
process.yml文件内容为:
3、创建并编辑dockerfile文件
vi dockerfile
dockerfile文件内容为:
执行如下命令构建一个镜像
docker build -t ssr/pm2 .
执行完之后就会构建一个名为ssr/pm2的镜像
4、执行如下命令,用ssr/pm2镜像启动一个容器
docker run -d --name testpm2 -p 8080:8080 ssr/pm2
四、自定义Nginx镜像
1、在新的文件夹里创建并编辑dockerfile文件
2、创建并编辑nginx.conf文件
执行下面的命令创建一个Nginx镜像
docker build -t ssr/nginx .
3、使用docker images查看镜像
docker images
4、创建一个Nginx容器并连接之前创建的testpm2容器
docker run -d --name nginx -p 80:8089 --link testpm2:testpm2 ssr/nginx
5、在主机的浏览器地址中输入数字机的ip地址即可访问,如:192.168.99.100
五、小结
1、在浏览器中访问数组机的ip时出现不能访问的情况,应该容器没有启动起来,在上述启动容器的步骤中用的是-d命令,-d表示让容器在后台运行。若想查看容器的具体错误,在启动容器的时候将-d换成-it即可 2、常用docker命令
docker-machine ssh dockerhost //进入数组机
docker-machine start dockerhost //启动数组机
docker-machine scp 源路径 目标路径 //将文件从主机中拷入数组机中,源路径是文件所在主机的位置,目标路径是数组机的路径(dockerhost:/home/docker/**.zip)
docker run -it --name test node//启动一个node容器,名为test
docker build -t test/node .//创建test/node镜像
docker images //查看镜像列表
docker ps //查看正在运行的容器
docker ps -a //查看所有容器
docker start test 启动名为test容器
docker stop test 停止名为test容器
docker rm test //删除名为test容器
docker rm test -f //删除正在运行中的test容器
docker rmi test/node //删除名为test/node的镜像
网友评论