DOCKER
Docker是一种开源的容器化平台,可以轻松地打包、部署和运行应用程序。使用Docker,开发人员可以将应用程序及其依赖项打包到一个称为Docker容器的可移植容器中。这使得应用程序可以在任何地方运行,无论是开发人员的笔记本电脑、测试环境、生产环境还是云上的虚拟机中。Docker的流行程度越来越高,因为它可以简化应用程序的部署和管理,并提高应用程序的可移植性和可靠性。
Docker常用命令点我直达
Docker Compose
Docker Compose 是 Docker 官方提供的一个工具,用于管理多个 Docker 容器的应用程序。使用 Docker Compose 可以定义和运行多个容器,从而组成一个完整的应用程序,并且可以方便地在不同的环境中部署和运行应用程序。
Docker Compose 的用法:
编写 docker-compose.yml 文件:在本地项目中创建一个 docker-compose.yml 文件,并定义应用程序所需要的服务和容器,包括镜像、环境变量、端口映射等信息。
启动应用程序:
在终端中进入项目目录,运行 docker-compose up 命令,Docker Compose 会自动构建并启动所有定义的服务和容器。
管理应用程序:
使用 docker-compose ps 命令可以查看当前正在运行的所有容器和服务,使用 docker-compose logs 命令可以查看容器的日志信息,使用 docker-compose stop 命令可以停止应用程序的运行。
扩展应用程序:
使用 docker-compose scale 命令可以快速扩展应用程序的容器数量,从而提高应用程序的性能和可用性。
部署应用程序:
使用 docker-compose build 命令可以构建应用程序的 Docker 镜像,并使用 docker-compose push 命令将镜像推送到 Docker Hub 或其他 Docker 镜像仓库中,从而方便地在不同的环境中部署和运行应用程序。
docker-compose使用模版1
vim docker-compose.yml
version: '3.3' # 这是一个Docker Compose文件的版本声明,它表明该文件符合Docker Compose文件格式版本3.3
services:
ywsj_name: #服务名,可以自定义
container_name: ywsj_name #容器名,可以自定义
ports:
- '3322:80' # 冒号:左边的3322可以改成任意vps上未使用过的端口,冒号右边是本docker镜像里的端口
environment:
- PUID=0 # 用户ID,在终端输入id可以查看当前用户的id
- PGID=0 # 组ID同上
- TZ=Asia/Shanghai #时区,可以自定义
restart: always #开启自启动其他选项看以下备注
volumes:
- './html:/usr/share/nginx/html' #目录映射,冒号:左侧可以更改本地的目录,右侧是对应的容器的目录
image: gindex/nginx-php #镜像名一般都是使用的哪个镜像就写哪个镜像。
备注:
选项 | 解释 |
---|---|
restart: always | 表示无论容器退出的原因是什么,Docker 都会自动重启容器。这个选项通常用于需要保持运行状态的服务,例如 Web 服务器、数据库等。使用这个选项可以确保容器在任何情况下都能够自动重启,从而保证服务的可靠性和稳定性。 |
restart: no | 表示容器退出时不重启容器。 |
restart: on-failure | 表示只有容器以非零状态退出时才重启容器。 |
restart: unless-stopped: | 表示除非手动停止容器,否则容器会一直自动重启。 |
docker-compose(lnmp)使用模版
version: '3.3'
services:
nginx:
image: nginx:1.22
container_name: nginx
restart: always
ports:
- 8088:80
- 4433:443
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/nginx/certs
- ./html:/var/www/html
php:
image: php:7.4.33-fpm
container_name: php
restart: always
volumes:
- ./html:/var/www/html
mysql:
image: mysql:5.7.42
container_name: mysql
restart: always
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ywsj
- MYSQL_DATABASE=ywsj
- MYSQL_USER=ywsj
- MYSQL_PASSWORD=ywsj
查看容器
docker-compose ps #查看容器
启动容器:
docker-compose up -d #启动容器
停止容器:
docker-compose down #停止容器
查看容器占用内存情况:
docker stats #查看内存占用
拉取最新镜像:
docker-compose pull #拉取最新的镜像
查看日志:
docker-compose logs #查看日志
删除旧的镜像文件:
docker image prune #删除旧的镜像文件(没有使用的镜像)
构建本地镜像文件
docker build -t <镜像名称> .
eg:
docker build -t ywsj/chatgpt .
进入容器的命令
docker exec -it <CONTAINER ID> bash #进入容器里,exit是退出
模版
这些命令可以通过在命令行中输入 docker-compose [command] 来使用。
保存镜像
docker save -o <path for generated tar file> <image name>:<tag>
eg
docker save -o myimage.tar myimage:latest
加载镜像
docker load -i <path to tar file>
eg
docker load -i myimage.tar
附:Docker环境部署教程
在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.cf/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.cf/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.cf/docker-003
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.cf/docker-004
docker安装脚本
bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)
docker-compose安装脚本
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose