1. 概念:

实现项目的部署。 装之前,我们首先确保自己的linux系统内核版本高于3.10,并且系统是64位,才能体验Docker哦。

  1. 镜像(image) node,mongodb,tomcat 一个安装软件就代表一个镜像 class
  2. 容器 在软件上运行的程序就是容器-->正在运行的程序就是容器 实例
  3. 仓库 (集中放置镜像的地方) Docker hub

1-1. 测试服务器版本

  1. uname -ir

2. 安装

  1. curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun //阿里云安装

2-1. 是否安装成功

  1. docker -v //查看docker的版本号

image.png

2-2. 安装阿里云镜像

使用docker安装软件

  1. //重建docker文件夹
  2. sudo mkdir -p /etc/docker
  3. //生成json文件
  4. sudo tee /etc/docker/daemon.json <<-'EOF'
  5. {
  6. "registry-mirrors": ["https://vjd3mwdv.mirror.aliyuncs.com"]
  7. }
  8. EOF
  9. sudo systemctl daemon-reload
  10. sudo systemctl restart docker

image.png

  1. docker info //查看docker的详情信息

3. nginx镜像

  1. docker pull nginx //最新版本
  2. docker pull nginx:1.8 //安装1.8,不覆盖

3-1. 查看docker镜像

  1. docker images

image.png

3-2. 删除docker镜像

  1. //docker rmi [镜像名:tag|id]
  2. docker rmi nginx:1.8 //rmi:remove images,删除nginx1.8 镜像
  3. docker rmi f6d //id删除
  4. docker images

image.png

启动一个容器

运行在镜像上的程序(应用)

  1. //就是运行在镜像上的程序(应用)
  2. //docker run [镜像名:tag|id]
  3. docker run nginx

4. 将80端口项主机暴露

  1. docher ps //正在运行的容器
  2. docher ps -a //所有存在的容器

image.png

4-1. 删除容器

  1. docker ps -a

4-2. 启动在后台运行的容器

容器和容器相互隔离,都在80端口

  1. docker run -d nginx
  2. docker ps

image.png

4-3. 端口向主机暴露

4-3-1. 停止容器

  1. docker stop 180id

4-3-2. 创建项外暴露的容器

  1. docker run -d -p 8080:80 nginx //主机端口:容器端口
  2. docker run -d -p 8081:80 nginx //主机端口:容器端口
  3. //容器一个端口可以启动多个

代码,环境一起打包成镜像

  1. # 引入Node
  2. FROM node:latest
  3. # 在容器内创建工作目录
  4. RUN mkdir -p /app
  5. # 指定容器工作目录
  6. WORKDIR /app
  7. #将当前目录下的所有文件,都拷贝进入 image 文件的/app目录。
  8. COPY . /app
  9. RUN npm install --registry=https://registry.npm.taobao.org
  10. RUN npm install pm2 -g --registry=https://registry.npm.taobao.org
  11. #对外暴露的端口
  12. EXPOSE 8080
  13. #程序启动脚本
  14. CMD ["pm2-runtime", "app.js"]

4-3-3. Linux上构建镜像

在Dockerfile同级路径下执行如下命令构建镜像

  1. docker build -t myapp .

4-3-4. 启动容器

  1. docker run -d -p 8082:8080 --name myapp myapp //主机端口:容器端口

4-3-5. 导出镜像

  1. docker save -o myapp.tar myapp

4-3-6. 导入镜像

  1. docker load -i myapp.tar