docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用

本章节主要来讲述docker desktop 界面版本使用以及docker-compose 的安装和使用

docker 专栏:点击此处


文章目录

    • 前言
    • 期望
    • docker
      • 1. window 开发环境
      • 2. linux 部署环境
    • docker-compose
      • docker-compose 安装
      • docker-compose 指令集
      • docker-compose 使用

前言

做了一个项目,用nodejs写的后端,vue写的PC端以及移动端,数据库用mysql,现在要部署到服务器上。由于怕下次部署又要一堆操作,就弄了个docker,并且以此文章来做笔记以及分享。

期望

  • 服务器:换了服务器,只需要服务器安装好docker+docker-compose,并将此文件配置拷贝到服务器,编译一下,就可以有个项目框架,再对jenkins进行安装环境配置就可以了
    (jenkins的项目也同步到了jenkins/jobs中,所以项目不用重复配置)
  • 代码更新:以后有新版本的代码,可以通过jenkins打包,并且实时发布,对于web打包就是正常的build一下就可以,nodejs后端比较麻烦。

这里记录下版本,因为不同时期总会有一些参数跟环境要求不一样了…
大家到时候就可以弄指定版本应该可以解决问题…

Docker版本:Docker version 23.0.0, build e92dd87
docker-compose版本: version 1.26.2

docker

  • 搜索仓库镜像:docker search 镜像名
  • 拉取镜像:docker pull 镜像名
  • 查看正在运行的容器:docker ps
  • 查看所有容器:docker ps -a
  • 删除容器:docker rm container_id
  • 查看镜像:docker images
  • 删除镜像:docker rmi image_id
  • 启动(停止的)容器:docker start 容器ID
  • 停止容器:docker stop 容器ID
  • 重启容器:docker restart 容器ID
  • 启动(新)容器:docker run -it ubuntu /bin/bash
  • 进入容器:docker attach 容器ID或docker exec -it 容器ID /bin/bash,推荐使用后者。

1. window 开发环境

docker 安装
点击下载
前期学习开发用,很方便
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第1张图片docker 下载并且运行
界面化了,当然也可以跟linux一样使用指令...
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第2张图片docker 配置
运行后会弹出配置框
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第3张图片
可以在这里配置端口映射以及数据卷,用linux来说就是挂载,这边给个9999端口号。
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第4张图片
点击后运行容器,并且进来到这个页面,当然也可以通过菜单的containers 进入到容器,直接可以看到容器里面的日志。
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第5张图片
还可以通过这里直接进入到该容器的命令行,相对于命令行是傻瓜式操作了。。。
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第6张图片
从容器列表中,点击步骤2,就可以弹出来了,具体的nginx配置,到其他章节讲,这里主要讲安装以及使用。

docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第7张图片
每个容器都有对应的暂停跟删除按钮,这里就不一一成列了。。。

2. linux 部署环境

  • 卸载docker
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-selinux \
           docker-engine-selinux \
           docker-engine \
           docker-ce
  • 安装
    Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

官方的一键安装方式:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国内 daocloud一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

运行docker daemon

systemctl start docker

docker-compose

docker-compose 没有图形化界面,都是用命令的,这边window+linux通用指令。

docker-compose 安装

pip 部分环境可能要安装一下

sudo pip3 install docker-compose

在linux 环境出错了,这里做下笔记,记录解决方案,每台服务器可能都不一样,自己看情况。

  • 错误1
    docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第8张图片

运行docker

sudo pip3 install --ignore-installed requests
  • 错误2:提示版本太低了,更新就好了

docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第9张图片

pip3 install --upgrade pip

docker-compose 指令集

获得一个命令的帮助
docker-compose 命令 --help

构建并启动所有容器,如果镜像存在就重新构建
docker-compose up -d --build

启动所有服务
docker-compose up -d

构建启动nignx容器               
docker-compose up -d nginx       

-f 指定使用的Compose配置文件启动,默认为docker-compose.yml,可以多次指定。
docker-compose -f docker-compose.yml up -d

运行一个服务,并在服务上执行一个命令
docker-compose run 容器id或容器名 ip addr

登录到nginx容器中             
docker-compose exec nginx bash

此命令将会停止 up 命令所启动的容器,并移除网络
docker-compose down

列出项目中运行的所有容器
docker-compose ps

列出项目中运行及未运行的所有容器
docker-compose ps -a

列出所有运行的服务容器
docker-compose ls

列出所有服务容器(包括未运行的容器)
docker-compose ls -a

重新启动nginx容器
docker-compose restart nginx          

构建镜像          
docker-compose build nginx            

不带缓存的构建       
docker-compose build --no-cache nginx     

查看各个服务容器内运行的进程      
docker-compose top              

查看nginx的实时日志               
docker-compose logs -f nginx        

列出 Compose 文件包含的镜像           
docker-compose images 

验证文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。                         
docker-compose config                

以json的形式输出nginx的docker日志           
docker-compose events --json nginx        

暂停nignx容器     
docker-compose pause nginx         

恢复ningx容器            
docker-compose unpause nginx      

删除容器(删除前必须关闭容器,执行stop)             
docker-compose rm nginx                       

强制删除容器(不必先关闭容器)             
docker-compose rm -f nginx    

停止nignx容器         
docker-compose stop nginx       
    
启动nignx容器           
docker-compose start nginx     

重启项目中的nignx容器                
docker-compose restart nginx               

下载依赖的镜像
docker-compose pull   

推送服务依的镜像
docker-compose push

设置指定服务运行的容器个数。通过service=num的参数来设置数量
docker-compose scale web=3 db=2

查看版本信息
docker-compose version

docker-compose 使用

这里扔一个mysql+adminer(数据库管理服务)作为demo,后期完整的配置在后续文章中展示。

version: '3.4'
services:
  mysql1:  #mysql容器
    image: mysql 
    container_name: mysql1
    restart: always
    # 授权
    user: root
    privileged: true 
    environment:  ##设置环境便变量
      TZ: Asia/Shanghai  ##设置时区
      MYSQL_ROOT_PASSWORD: 123456 #这里自行设置root用户的密码
    command:  ##设置容器运行时执行的命令
      --default-authentication-plugin=mysql_native_password
    volumes:
      - /C/docker-compose/mysql/datadir/:/var/lib/mysql
    ports:
      - 3306:3306  #宿主机和容器间的端口映射,可自行配置


  adminer1:    ##指定服务名为adminer
    image: adminer    ##指定要运行的镜像为adminer adminer是一个mysql数据库的web工具
    container_name: adminer1    ##指定容器名
    user: root
    privileged: true 
    restart: always    ##设置重启策略为always
    ports:    ##指定映射的端口(宿主机端口:容器内部端口)
      - 10080:8080
    depends_on:    ##设置容器的依赖关系,该adminer容器关联mysql容器
      - mysql1      ##mysql这个镜像安装后,才会安装这个镜像

在该文件目录中运行脚本。

# 记得先开打docker 服务...
# systemctl start docker
# 运行脚本
docker-compose up -d

docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第10张图片
如果端口被占用了,记得先停止一下
docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第11张图片
打开,adminer,根据配置文件填写信息,记得服务器,这个比较尴尬,很多copy的文章都没有提示这个…

docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第12张图片
最终效果 ; )

docker持久化部署vue前端nodejs后端项目-- docker在window界面(docker Desktop) 以及linux命令行的安装和使用_第13张图片

你可能感兴趣的:(Docker,docker,前端,vue.js)