# docker **Repository Path**: liberty_lin/docker ## Basic Information - **Project Name**: docker - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-15 - **Last Updated**: 2022-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker 环境脚本整理 本项目主要为了方便搭建开发环境而存在的,里面的软件都是当前最新稳定版,可自行修改版本和关联扩展。 ## 要求 安装了 `Docker` 和 `docker-compose`。 `Windows` 和 `Mac` 自带 `docker-compose` 命令。`Linux` 用户需自行安装。 - [Docker 安装](https://docs.docker.com/get-docker/) - [docker-compose 安装](https://docs.docker.com/compose/install/) > Note: > > 对于不了解的命令可使用 `--help` 参数来查看说明 ## 使用方法 使用 docker-compose 让环境搭建更方便快捷,为了方便区分环境我并没有用 `docker-compose.yml` 来命名文件,我并不希望你在当前项目里当运行环境。 ### 初始化环境 运行目录推荐 ```shell 环境名/ runtime/ 镜像名1/ conf/ data/ log/ 镜像名2/ conf/ data/ log/ ... [pecl/] Dockerfile docker-compose.yml ``` 示例1:lnmp 环境 1. 创建环境目录 docker-php-web 2. 复制 lnmp.yml 成 docker-compose.yml 文件 - 打开文件把 build 参数路径根据实际进行修改 - 不需要使用的镜像删除 3. 复制 Dockerfile/php74-fpm 成 Dockerfile 文件 - 打开文件把路径相关参数根据实际进行修改 - 里面有对扩展的安装,如果不满足需自行添加 4. 复制 Dockerfile/pecl/ 到环境根目录(扩展依赖的压缩包) 5. 执行 docker-compose up -d 启动环境 - [示例项目](https://gitee.com/liberty_lin/docker-php-fpm) > Note: > > `Dockerfile`中我知道有 `pecl install` 命令安装,会出现请求失败,所以干脆自行下载包,后面换版本还可以复用。 > > `docker-php-ext-install` 尽可能的一次性执行完需要安装的扩展!如果仔细查看命令返回信息,会发现自主安装清除编译依赖,所以能一次性执行完会省一次资源。 示例2:nodejs 环境 1. 创建环境目录 docker-nodejs 2. 复制 nodejs.yml 成 docker-compose.yml 文件 3. 复制 Dockerfile/nodejs 成 Dockerfile 文件 4. 执行 docker-compose up -d 启动环境 - [示例项目](https://gitee.com/liberty_lin/docker-nodejs) 示例3:swoole 环境 1. 创建环境目录 docker-swoole 2. 复制 swoole.yml 成 docker-compose.yml 文件 3. 复制 Dockerfile/php74 成 Dockerfile 文件 4. 复制 Dockerfile/pecl/ 成环境根目录 5. 执行 docker-compose up -d 启动环境 - [示例项目](https://gitee.com/liberty_lin/docker-swoole) > Note: > > 因为是开发环境,无法顾虑到所以容器需要开放的端口,需要自行添加,并使用下边介绍的命令进行环境更新 ### 日常使用 ```shell # docker-compose.yml 内容变更后,更新环境 docker-compose up -d # Dockerfile 内容变更后,更新环境 docker-compose build # 启动、停止、重启 docker-compose start docker-compose stop docker-compose restart # 进入容器 #alpine 系统使用 /bin/sh docker exec -it <容器名> /bin/sh docker exec -it <容器名> sh docker exec -it <容器名> /bin/bash docker exec -it <容器名> bash # 复制本地文件到容器内,或复制容器内文件到本地 docker cp 容器名:文件路径 本地路径 docker cp 本地路径 容器名:文件路径 # 查看网络 docker network ls # 查看所有容器 docker ps -a # 环境使用外部的容器 # docker-compose.yml 环境名 + network 设置名是当前网络名 docker network connect <网络> <外部容器名> ``` ## 个人笔记 - [通用基础](note/README.md) - [常用命令](note/base-cmd.md) - [Dockerfile](note/dockerfile.md) - [docker-compose](note/docker-compose.md) - [使用思考](note/use-thinking.md) - [常用问题](note/FQA.md) ## 参考 - [【狂神说Java】Docker最新超详细版教程通俗易懂](https://www.bilibili.com/video/BV1og4y1q7M4) - [【狂神说Java】Docker进阶篇超详细版教程通俗易懂](https://www.bilibili.com/video/BV1kv411q7Qc) - [Docker 官方文档](https://docs.docker.com/)