乐趣区

关于docker:使用docker部署简单的项目

目标:记录一下学习 docker 部署简略我的项目的思路

思路:

  1. 应用 docker pull 拉取相应的镜像源
  2. 创立 Dockerfile 文件,编写配置文件
  3. docker build 运行 Dockerfile 文件,应用其配置创立新的镜像
  4. docker run 创立容器并运行

    此处借用一下官网的逻辑图

环境配置

环境:CentOS 7

// 应用 yum 装置 docker  此处因应用的集体服务器,是最高权限
sudo yum install docker

应用 docker - v 或者 docker 能够检测是否装置胜利

ps: 对于环境的相干配置,能够自行百度或者 google,有大量教程,个别装置失败,都是因为权限的问题(我所遇到的)

正式部署

创立一个简略的文件,次要目录如下

`-- your-app-name/
    |-- src/
        `-- app.js  // 轻易写一些什么
    `-- Dockerfile   (we will create this in the following steps)

咱们次要关注点是对 Dockerfile 文件的配置

# 拉取 node 镜像源,如果本地没有,会主动从 docker hub 进行拉取
FROM node:latest
# 执行命令,创立文件夹 此处门路其实不必进行创立
# 在下一步的 copy 时,如果没有此文件,会主动在门路下创立文件
RUN mkdir -p /home/nodeDemojs
# 复制文件  复制 src 下的文件到 /home/nodeDemojs
COPY ./src /home/nodeDemojs
# 容器启动时执行的命令,相似 npm run start
CMD ["node", "/home/nodeDemojs/app.js"]

执行文件

  1. 执行 docker build

    docker build -t 镜像名 .
    // 镜像名后能够跟版本号, 格局如 镜像名:v1.0
    // 最初的 . 要特地留神,不能呢个省略,这个作用是绑定咱们所执行的上线文 
  2. 执行 docker images, 查看咱们所有的镜像

  3. 执行 docker run

    应用此指令,能够创立一个容器并运行

    docker run -d -p 3000:3000 docker-demo:v1.0
    • -d:示意后盾运行
    • -p:示意指定端口映射,(3000:3000)示意(本机端口:容器端口),3000 是笔者的 nestjs 代码中监听的拜访端口,也是容器对外裸露的端口
    • 镜像名前面的:v1.0:示意打的 tag 号

一些罕用的指令

  • 查看镜像

    docker images
  • 删除镜像

    docker rmi 镜像 ID
  • 查看运行的容器

    docker ps
  • 进行容器

    docker stop 容器 ID
  • 检测 docker 启动状态

    sudo systemctl status docker.service

  • 启动 docker

    sudo systemctl start docker.service
    
    // 执行完上述指令后,再次查看 docker 以后的状态,执行 sudo systemctl status docker.service~~~~
  • 重启 docker

    sudo systemctl restart docker.service
退出移动版