安装和使用 docker compose

使用 docker 来创建容器,隔离各个应用的操作环境,可以更加安全和简单地维护不同的应用。而使用 docker compose 来创建和启动容器,便于维护和调试各个容器的启动信息,提高修改效率。

安装 docker

服务器上可能有旧版本的docker,先移除:

sudo apt-get remove docker docker-engine docker.io containerd runc

安装必要支持:

sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common lsb-release

添加阿里云的 GPG Key:

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

更新 apt 源:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get update

安装指令:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

admin 用户是非 root 用户,默认情况下不能使用大部分 docker 指令(需要 sudo),使用以下指令更新用户权限:

sudo usermod -aG docker $USER

重新登录后,使用 docker 时就不需要 sudo 了。

简单指令:

systemctl start docker:启动 docker

systemctl status docker:查看状态

docker versino:查看 docker 版本

docker images:查看安装的镜像

image-20240727111532512

安装 docker compose

运行以下命令:

sudo apt-get install docker-compose-plugin

查看是否安装:docker compose version

一般显示如下:

image-20240726112026893

安装镜像和编写 compose.yaml

安装我们需要的镜像:

docker pull xhofe/alist
docker pull mysql
docker pull wordpress

这里手动安装镜像,就不用写 DockerCompose 所需的 Dockerfile 了。想详细学习 DockerCompose 的朋友戳 这里

然后新建一个文件夹 dockercompose,在里面写一个文件 docker-compose.yml

具体内容可以让 AI 帮忙写,结合各应用的官方文档修改。

大概长这样:

version: '3'

services:

  mysql:
    image: mysql:latest
    container_name: mysql
    volumes:
      - $HOME/data/mysql:/var/lib/mysql
      - /etc/localtime:/etc/localtime:ro # sync with localhost time
    ports:
      - '3306:3306'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: xxxxxxxx # change it as you like
      MYSQL_DATABASE: wordpress #A
      MYSQL_USER: wp #B
      MYSQL_PASSWORD: wp.login #C

  alist:
    image: 'xhofe/alist:latest'
    container_name: alist
    volumes:
      - /etc/alist:/opt/alist/data
    ports:
      - '5244:5244'
    restart: unless-stopped
    environment:
      - PUID=0
      - PGID=0
      - UMASK=022
      - TZ=Asia/Shanghai

  wordpress:
    depends_on:
      - mysql
    image: wordpress:latest
    container_name: wp
    volumes:
      - $HOME/data/wordpress:/var/www/html
    ports:
      - '6773:80'
    restart: unless-stopped
    environment:
      WORDPRESS_DB_HOST: mysql:3306
      WORDPRESS_DB_USER: wp #B
      WORDPRESS_DB_PASSWORD: wp.login #C
      WORDPRESS_DB_NAME: wordpress #A

这里主要的几个参数解释一下:

  • image:使用的镜像名称,可以使用 docker images 查看可用镜像的名称和标签
  • container_name:创建的容器名称,注意不要和其他容器的名称重复了
  • volumes:挂载选项。在 docker 容器中,所有的内容和外界都是隔离的,一些需要修改的配置文件、需要保留的数据不能很方便地管理;同时删除容器后容器内所有的数据都会丢失。为了持久化这些数据,我们就将主机中某个文件夹挂载到容器中一个文件夹里。例如 $HOME/data/mysql:/var/lib/mysql,就是指将主机中的 ~/data/mysql 挂载到容器内的 /var/lib/mysql 文件夹,容器访问后者时实际上在访问前者。
  • ports:容器想要和主机交流,就需要开放端口。初始状态下,容器内所有的端口都是封闭的,不能与主机交流。而我们需要规定端口映射,才能让各个容器和主机之间通信。例如,wp 的启动配置中 6773:80 一条,就把主机的 6773 端口映射到 wp 容器的 80 端口,这样就可以通信了。
  • environment:这里的环境配置和应用本身有关,只要注意以下几条就好。
    • mysql 映射的主机端口和 WORDPRESS_DB_HOST 写的一致;
    • MYSQL_DATABASEWORDPRESS_DB_NAMEMYSQL_USERWORDPRESS_DB_USERMYSQL_PASSWORDWORDPRESS_DB_PASSWORD 分别对应,填写的内容要一致。

启动 docker compose

上一步完成之后,我们在 dockercompose 文件夹里。执行以下命令即可按 docker-compose.yml 创建和启动容器:

docker compose -f docker-compose.yml up -d

-f 指定了配置文件,-d 指定了容器后台运行。

如果想中止容器运行,进行调试的话,应该用 docker compose stop

关于 docker compose 中几个不同启动/终止命令的区别:Docker Compose Up 与 Start 以及 Down 与 Stop 区别-(linux-console.net)

这个时候我们实际上已经启动了 Alist、Mysql 和 WordPress,再设置一下代理就可以使用了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇