💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
一、什么是容器? https://www.redhat.com/zh/topics/containers/whats-a-linux-container Linux容器是与系统其他部分隔离开的一系列进程。 Docker解决的是什么问题? 本质:隔离(权限 资源) 工作原理:Linux容器。 二、Docker是什么? Docker官方网站: https://www.docker.com/ 官方文档: https://docs.docker.com/ Ubuntu安装: https://docs.docker.com/install/linux/docker-ce/ubuntu/ 》apt-get update 》apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 》curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 》apt-key fingerprint 0EBFCD88 》add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 》apt-get update 》apt-get install docker-ce docker-ce-cli containerd.io Docker镜像: 官方镜像: nginx php 非官方镜像: zhangsan/nginx lisi/php 三、Docker如何使用? 如何启动一个容器? 1 准备镜像 2 容器从镜像启动 PHP-FPM 安装扩展 https://hub.docker.com/_/php 方法1: 进入容器 pecl install xxx 容器之间如何互联? Nginx + PHP-FPM + Redis 1 使用 --link(不推荐) ##注意启动顺序 启动 PHP-FPM容器 docker run -d --name fpm-1906 -v /wwwroot:/wwwroot -p 9000:9000 php:7.4.4-fpm 启动 Nginx容器 docker run -d --name nginx-1906 --link fpm-1906 -p 80:80 -v /wwwroot/:/wwwroot nginx 2 (推荐)使用 自定义网络 docker network 参考文档:https://docs.docker.com/network/bridge/ // 创建用户自定义网络 启动容器时使用 --network参数 > docker network create net-1906 // 启动 redis容器 使用 net-1906 网络 > docker run -d --name redis-1906 --network net-1906 redis // 启动 PHP-FPM 容器 使用 net-1906 网络 > docker run -d --name fpm-1906 --network net-1906 -v /wwwroot:/wwwroot php:7.4.4-fpm // 启动 Nginx 容器 使用 net-1906 网络 并绑定宿主机的80端口 > docker run -d --name nginx-1906 --network net-1906 --publish 80:80 -v /wwwroot:/wwwroot nginx #如何给PHP安装扩展? https://hub.docker.com/_/php 方法1: 》 在容器中使用 pecl install redis 》 修改php.ini,加入 extension = redis.so 》 重启PHP-FPM 或 重启 容器 使用Docker应该注意的问题: 对容器进行的修改,在容器删除后修改会被重置。 参考文档: 虚拟机与docker的关系:http://dockone.io/article/6051 DockerHub: hub.docker.com Docker常用命令: docker version docker images // 查看本地镜像 docker ps 查看已启动的容器 docker run docker run --name nginx-1906 -p 2345:80 -d nginx // 从 nginx镜像启动一个容器(nginx-1906),并将宿主机端口2345与容器端口绑定 docker run --rm --name nginx-1906 -p 2345:80 -d nginx docker run --name nginx-1906 -p 80:80 -d -v /wwwroot:/xxxx nginx docker exec docker exec -it xxx /bin/bash //进入容器 xxx 中 docker pull yyy // 拉取 yyy镜像 docker stop xxx // 停止 xxx 容器 docker start xxx // 启动xxx容器 docker rm xxx // 删除 xxx容器 (删除前需要先停止容器) docker rm -f xxx // 强制删除 xxx 容器 docker rmi xxx // 删除 xxx 镜像 docker logs -f xxx // 查看容器xxx的日志 docker cp a.txt xxx:/path //将本地文件 a.txt 复制到 xxx容器中的 /path目录 docker rm $(docker ps -a -q) //删除所有已停止的容器 docker rm -f $(docker ps -a -q) //删除所有的容器(包括正在运行与已停止的) docker network create xxx //创建docker网络 docker network ls docker network rm xxx //删除 xxx 网络 命令参考文档: https://docs.docker.com/engine/reference/run/