侧边栏壁纸
博主头像
码森林博主等级

一起走进码森林,享受编程的乐趣,发现科技的魅力,创造智能的未来!

  • 累计撰写 146 篇文章
  • 累计创建 74 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Docker(10):Docker-Compose 简介及安装

码森林
2022-02-24 / 0 评论 / 0 点赞 / 435 阅读 / 3,492 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-02-24,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

本节主要学习Docker-Compose。

Compose 简介

Compose 是用于单宿主机定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

Compose 安装

官方文档:https://docs.docker.com/compose/install/

WIN/MAC 默认提供 Docker Compose,Linux 需安装

1、运行以下命令以下载 Docker Compose 的当前稳定版本:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
————————————————————————————————
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0   1100      0 --:--:-- --:--:-- --:--:--  1098
100 12.1M  100 12.1M    0     0  1993k      0  0:00:06  0:00:06 --:--:-- 2643k

2、将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

3、测试安装结果:

docker-compose --version
————————————————————————————————
docker-compose version 1.29.1, build c34c88b2

这样 docker-compose 就安装好了~

通过 Docker-Compose 安装 Wordpress

1、创建一个空的项目目录 my-wordpress,切换至该目录。

cd /usr/local/projectes
mkdir my-wordpress
cd my-wordpress

2、创建一个 docker-compose.yml 文件来启动 WordPress 博客,并创建一个单独的 MySQL 实例,该实例具有用于数据持久性的卷挂载:

vim docker-compose.yml

#内容如下:
version: "3.9"
    
services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "9999:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
volumes:
  db_data: {}

3、运行项目

docker-compose up -d
——————————————————————————————————
Creating network "my-wordpress_default" with the default driver
Creating volume "my-wordpress_db_data" with default driver
Pulling db (mysql:5.7)...
5.7: Pulling from library/mysql
f7ec5a41d630: Pull complete
9444bb562699: Pull complete
6a4207b96940: Pull complete
181cefd361ce: Pull complete
8a2090759d8a: Pull complete
15f235e0d7ee: Pull complete
d870539cd9db: Pull complete
cb7af63cbefa: Pull complete
151f1721bdbf: Pull complete
fcd19c3dd488: Pull complete
415af2aa5ddc: Pull complete
Digest: sha256:a655529fdfcbaf0ef28984d68a3e21778e061c886ff458b677391924f62fb457
Status: Downloaded newer image for mysql:5.7
Pulling wordpress (wordpress:latest)...
latest: Pulling from library/wordpress
f7ec5a41d630: Already exists
941223b59841: Pulling fs layer
a5f2415e5a0c: Pulling fs layer
b9844b87f0e3: Pulling fs layer
5a07de50525b: Pull complete
caeca1337a66: Pull complete
5dbe0d7f8481: Pull complete
b5287b60e185: Pull complete
a3bdca77fbaf: Pull complete
e3edcade6aa2: Pull complete
703ba034e6f0: Pull complete
36ef47972442: Pull complete
4acb239a9263: Pull complete
e74d610ba693: Pull complete
97f505d02f6f: Pull complete
d6dd6701aaec: Pull complete
43ef3ceb4f4b: Pull complete
a59b940a007f: Pull complete
714359ef8f41: Pull complete
24b7e9a8c62d: Pull complete
b400ea29ad59: Pull complete
Digest: sha256:208def35d7fcbbfd76df18997ce6cd5a5221c0256221b7fdaba41c575882d4f0
Status: Downloaded newer image for wordpress:latest
Creating my-wordpress_db_1 ... done
Creating my-wordpress_wordpress_1 ... done

至此 WordPress 安装完成~

4、查看容器

docker ps
——————————————————————————————————
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                       NAMES
36188bfa4e7d   wordpress:latest        "docker-entrypoint.s…"   30 minutes ago   Up 30 minutes   0.0.0.0:9999->80/tcp, :::9999->80/tcp       my-wordpress_wordpress_1
cc0bb8d128fe   mysql:5.7               "docker-entrypoint.s…"   30 minutes ago   Up 30 minutes   3306/tcp, 33060/tcp                         my-wordpress_db_1

我们看到它构建两个容器,一个 wordpress,一个 mysql。

总结

本节我们学习了 Docker-Compose,并用其构建了一个 WordPress 项目。

但是 Docker-Compose 仅限于单宿主机使用,在多主机集群中我们还是得采用 Swarm、K8S 等。

0

评论区