目 录CONTENT

文章目录

Docker

yyzq
2024-03-28 / 1 评论 / 5,521 阅读 / 1,441 字

DOCKER

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

服务器购买

https://duan.yyzq.cf/vps