服务器部署docker项目,使用Docker部署项目

一、安装docker

按照文档安装docker,并且注册账号,当电脑的右上角出现小鲸鱼的图标,且显示Docker Desktop is running,安装启动成功

二、Docker概念

1、操作系统层面的虚拟化技术

2、隔离的进程独立于宿主和其它的隔离的进程 - 容器

3、GO语言开发

4、特点:高效的利用系统资源;快速的启动时间;一致的运行环境;持续交付和部署;更轻松的迁移

5、核心:镜像、容器、仓库

三、Docker构建一个Nginx服务器

1、拉取官方镜像

docker pull nginx

2、查看

docker images nginx

3、新建文件

mkdir www

echo 'hello docker!!' >> www/index.html

4、启动镜像

docker run -p 80:80 -v $PWD/www:/usr/share/nginx/html -d nginx

80:80代表我的宿主机的端口:容器类的端口

如果运行结果是一串uuid,那么在浏览器打开http://localhost/会看到

5、查看进程

docker ps

docker ps -a // 查看全部

6、 -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开,eu9是CONTAINER ID 的前三位

docker exec -it eu9 /bin/bash

7、停止镜像

docker stop eu9

8、删除镜像(前提是镜像已经stop)

docker rm eu9

注意⚠️:也可以使用Dockerfile定制镜像

1、新建Dockerfile文件

FROM nginx:latest

RUN echo '

Hello, Kaikeba!

' > /usr/share/nginx/html/index.html

2、定制镜像

docker build -t mynginx .

3、运行:-d 守护态运行

docker run -p 80:80 -d mynginx

五、使用Docker定制node镜像

1、node项目下新建Dockerfile

#制定node镜像的版本

FROM node:10-alpine #移动当前目录下面的文件到app目录下 ADD . /app/ #进入到app目录下面,类似cd WORKDIR /app

#安装依赖

RUN npm install

#对外暴露的端口

EXPOSE 3000

#程序启动脚本

CMD ["node", "app.js"]

2、定制镜像

docker build -t mynode .

3、运行:-d 守护态运行

docker run -p 3000:3000 -d mynode

六、Docker-Compose:部署Mongo MongoExpress

添加docker-compose.yml

version: '3.1'

services:

mongo:

image: mongo

restart: always

ports:

- 27017:27017

mongo-express:

image: mongo-express

restart: always

ports:

- 8081:8081

mongoose.js代码中添加Mongoose调用

// mongoose.js

const mongoose = require("mongoose");

// 1.连接

mongoose.connect("mongodb://mongo:27017/test", { useNewUrlParser: true }); const conn = mongoose.connection;

conn.on("error", () => console.error("连接数据库失败"));

app.js

// app.js

const mongoose = require('mongoose');

mongoose.connect('mongodb://mongo:27017/test', {useNewUrlParser: true});

const Cat = mongoose.model('Cat', { name: String });

Cat.deleteMany({})

const kitty = new Cat({ name: 'Zildjian' });

kitty.save().then(() => console.log('meow'));

app.use(async ctx => {

ctx.body = await Cat.find()

})

运行

docker-compose up

后台运行

docker-compose up -d

强制重新构建并启

docker-compose up -d --force-recreate --build

来源:https://www.icode9.com/content-4-673851.html

你可能感兴趣的:(服务器部署docker项目)