docker安装

现公司技术栈为Laravel + vue,前后端未分离,开发人员都需要使用docker。公司电脑大家都一样,安装起来还是挺顺利的,但最近由于疫情开始远程办公,自己装docker是着实费了老大的劲儿,发现自己对docker真的是一窍不通,那就趁现在有空学习下吧。

简介

参考文章:Docker — 从入门到实践Docker 入门教程-阮一峰

安装教程

  • 进入docker官网下载安装 docker(入门教程

  • 安装前提(mac可忽略):

    • 系统用户名必须为英文,且安装路径也不允许有中文
    • windows中Docker目前仅有win10专业版/企业版的安装包,其他版本系统需安装Docker Toolbox,建议升级系统不要折腾了(修改产品密钥即可升级)
    • 在“启用或关闭Windows功能”中开启Hyper-V
    • 在任务管理器 → 性能 → 选择CPU → 右侧“虚拟化”属性查看是否开启cpu虚拟化,若未开启,进入dios启用配置
  • 安装完成后设置docker的shared dives(勾选项目所在磁盘)和 memory(调大一些)

  • 克隆local-dev-env(与代码父级文件夹平级)

    1
    2
    3
    4
    5
    6
    目录样例:
    - workspace
    - local-dev-env
    - my-project
    - docker-test
    - 其他项目...
  • 增加local-dev-env\dpcker-compose.yml中的配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 每个项目都需要添加services配置项
    docker-test: # 根据项目修改容器名称
    image: registry.cn-hangzhou.aliyuncs.com/zlt/nginx-php-fpm-alpine
    environment:
    WEBROOT: '/var/www/html/public'
    ERRORS: 1
    RUN_SCRIPTS: 1
    ENABLE_XDEBUG: 1
    XDEBUG_CONFIG: "remote_host=192.168.1.138"
    XDEBUG_PORT: 9001
    PUID: 1000
    PGID: 1000
    volumes:
    - D:/workspace/my-project/docker-test:/var/www/html # 修改为本地项目地址
    ports:
    - "8001:80" # 根据本机修改端口号
  • 拉取镜像

    • 第一次运行项目需要先拉取镜像,拉取镜像需要先登录docke镜像库:启动docker后,进入local-dev-env文件夹运行docker login registry.cn-hangzhou.aliyuncs.com,如果碰到windows版本问题( 非TTY device)需要在命令前加上winpty
    • 登录完之后执行:docker-compose up -d,会先拉取镜像并启动容器,镜像只需拉取一次,此后再执行不会再拉取镜像,直接启动容器。
    • 如果拉取镜像频繁超时,将docker设置中的”registry-mirrors”字段更改为["http://hub-mirror.c.163.com"](修改了docker镜像源),重启即可生效,也可梯子翻墙,命令行默认不走代理,记得设置http_proxy
  • 项目安装PHP依赖

    • 进入local-dev-env文件夹下运行docker-compose exec XXX bash,进入到对应项目的容器中,再安装php依赖:composer install
    • 如果进入容器时出现Interactive mode is not yet supported on Windows错误,可先运行docker ps获取容器名,再运行docker exec -it <containername> sh即可(参考
    • 如果composer install拉取依赖频繁超时,可尝试以下方法之一:
      • 进入容器后执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,将composer镜像设为阿里源
      • 梯子翻墙,命令行默认不走代理,记得设置http_proxy
  • 进入项目目录运行yarnnpm install安装依赖,若因网络问题导致node-sass安装失败,先删除依赖,再使用梯子或国内镜像cnpm重新安装

  • 复制项目中的.env.example为.env

  • 之后只需先进入local-dev-env在后台启动并运行所有的容器:docker-compose up -d,再进入项目npm run watch启动项目

  • 最后,感谢同事的帮助~