前端项目部署 - docker

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaobing_hope/article/details/83589367

docker

docker的概念在这里就不在累述,大家google一下都能得到很详细的描述。

借着这次项目需要自己利用docker部署各环境,记录一下docker学习和部署的相关过程。

概念

linux容器与虚拟机的对比

方案 资源占用 冗余步骤 启动 体积
虚拟机 多(独占一部分内存和硬盘空间) 多(完整操作系统,系统级别操作无法跳过) 慢(mins) -
linux容器 少(只占用少量资源,多个容器可共享资源) - 快(容器中的应用=进程)

docker属于linux容器的一种封装(虽然我并没有深入了解linux容器)。

docker的主要用途有(源阮一峰大大博客)

  • 提供一次性的环境
  • 提供弹性的云服务
  • 组建微服务架构

虽然我在用到的过程中并没有体会到上述好处,但不得不说docker真的是个很方便,也很值得学习的东西

重点

docker有几个非常重要的概念 imagescontainerDockerfile

  • images

    docker把应用程序和依赖打包到images文件里面,通过这个文件就可以生成一个docker 容器。 简单来说,就是把项目的源文件进行打包制作成一个镜像文件

  • container

    利用docker run的命令来生成该对应镜像的容器,容器很像一个小型的服务器

    扫描二维码关注公众号,回复: 3915203 查看本文章
  • Dockerfile
    用来配置image的文本文件,Docker根据该文件来生成二进制的image文件


下载安装

mac下载地址
windows下载地址

docker version    // 验证docker安装成功并查看docker版本

制作docker容器

  1. 在项目的根目录新建文本文件Dockerfile

    # 本次项目基本dockerfile配置项
    # 基础镜像
    FROM nginx
    
    # 将打包好的项目文件拷贝到容器对应位置
    COPY  build /usr/share/nginx/html
    
    # 将本地的nginx配置文件拷贝到容器对应位置,使其生效
    COPY ./nginx.conf /etc/nginx/conf.d/default.conf
    
    # 用来启动容器的命令
    COPY ./docker-compose.yml /home/dengbingyu/docker-compose.yml
    
  2. 生成项目的镜像文件

    # 生成镜像文件,并打上tag为feedback-sys
    docker build -t feedback-sys
    
  3. 将镜像文件上传至dockerhub

    docker push ${dockerhub 域名}/归属/仓库名称:tag名
    
  4. 服务器端拉取镜像文件

    docker pull 地址
    
  5. 启动容器

    # 运行一个镜像并  启动 bash 交互
    docker run -it mydocker /bin/bash
    
    # 也可以写docker-compose.yml文件,通过docker-compose up 命令来启动
    # docker-compose.yml文件配置参见官网
    

常用docker命令

  • docker ps 查看所有当前运行的容器 (docker ps -a查看所有容器,包括停止的)

  • docker images 查看所有的镜像文件

  • docker rm ${containerId} 移除容器

  • docker rmi ${imageId} 移除镜像文件

  • docker rm ${docker ps -aq} 删除所有容器

  • docker attach ${containerId} 进入docker容器,以bash交互

  • docker kill ${containerId} 杀掉运行的容器,stop也可以


  • docker build -t ${mydocker} . 将当前目录下文件构建成指定名称镜像

  • docker tag ${imageName} ${imageName} 改镜像tag

  • docker run -it ${imageName} /bin/bash 启动镜像,并进入容器,以bash进行交互

  • docker run --name ${imageName} -d -p 80:80 nginx 用 nginx 镜像启动一个容器,命名为 webserver,并映射 80 端口

猜你喜欢

转载自blog.csdn.net/xiaobing_hope/article/details/83589367