谷姐:我们都是谷歌迷
We are all Google fans

ARM版Ubuntu通过Docker Compose搭建LNMP环境小白教程-zidon

Rate this post

说明:

使用 Docker 好处这里就不多说了,虽然 docker 命令一样可以管理容器;但 Docker Compose 能更好的定义和运行多容器的操作。特别是使用 docker-compose.yml 可以快速构建管理多个 Docker 容器,通过使用 docker-compose 指令来启动、停止和重启应用,以及应用中的服务和所有依赖服务的容器。yml 文件包含 Compose 使用的所有设置,用于配置镜像,容器,网络等。

本文主要讲述在ARM平台的ubuntu系统中,通过 Docker Compose 搭建LNMP环境,虽然只简单的创建了三个容器并运行。但举一反三,明白了操作流程,就可根据自己需要创建更多的容器,甚至生成自己的镜像,这将为工作提供很好的方便。

至于要为什么在这里发布这篇帖子,懂得都懂了。

姐妹篇教程,看这里:
ARM版Ubuntu通过Docker Compose搭建LAMP环境小白教程
https://hostloc.com/thread-888911-1-1.html

一、安装docker

参考文档:ubuntu安装docker文档:https://docs.docker.com/engine/install/ubuntu/

在新主机上首次安装 Docker 之前,需要设置 Docker 存储库。然后可以从存储库安装和更新 Docker。

1、更新apt包索引并安装依赖包以允许apt通过 HTTPS 使用存储库:

$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

2、添加Docker官方的GPG密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

3、使用以下命令设置arm版docker稳定存储库。

$ echo \
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4、更新apt包索引,安装最新版本的Docker和containerd:

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

5、查看 Docker 版本确认安装成功:

$ docker version

6、启用自动启动和启动。

# systemctl enable docker
# systemctl start docker

二、安装Docker Compose

1、安装docker compose:

$ sudo aptinstall docker-compose
以上会直接安装ubuntu资源库中的docker-compose,但版本比较低,默认为1.25.0-1,要安装最新版看下面操作。

2、安装最新版docker compose(for arm):

安装 arm 版本的 docker compose ,推荐使用linuxserver.io编译好的镜像脚本安装。执行以下两行命令即可:
$ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose

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

3、查看docker compose版本确认安装成功:

$ docker-compose --version

三、配置Docker Compose

参考目录树:
dk-app
├── docker-compose.yml
├── mysql# mysql配置文件及数据库目录,需将容器内配置文件复制过来,并作挂载
│ ├── my.cnf
│ └── data
├── apache2# apache及php配置文件目录,需将容器内配置文件复制过来,并作挂载
│ ├── apache2.conf
│ ├── php.ini
│ └── sites-available
├── nginx# nginx配置文件目录,需将容器内配置文件复制过来,并作挂载
│ ├── nginx.conf
│ └── conf.d
│ └── default.conf
├── php# php配置文件目录,需将容器内配置文件复制过来,并作挂载
│ └── php-fpm.conf
├── log# 日志目录,需挂载各应用目录才能生效
│ ├── mysql
│ └──apache,php…
├── certs# ssl证书
└── html# web目录

1、创建项目目录并进入:

$ mkdir dk-app && dk-app

2、配置docker-compose.yml文件:

$ sudo vim docker-compose.yml

内容如下:

# 指定语法版本
version: '3'
services:
# 构建mysql服务
mysql:
image: biarms/mysql:5.7# supports mysql for arm
#image: ubuntu/mysql# only supports mysql8.0 for arm,想装新版可使用此镜像
container_name: dk_mysql
restart: always
ports:
- 3306:3306
volumes:
- mysql/datakkk:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: my_secret_password
# 构建nginx服务
nginx:
image: nginx:latest
container_name: dk_nginx
restart: always
ports:
- 8080:80
depends_on:
- php
- mysql
volumes:
- ./html:/usr/share/nginx/html
# 构建php服务
php:
image: php:7.3-fpm
container_name: dk_php
restart: always
volumes:
- ./html:/var/www/html

提醒:把多余的kkk去掉吧,我实在是无能为力了。

参数说明:
• image:建立容器使用的镜像及版本
• container_name:建立容器的名称
• restart: always:当 Docker 重启时,容器自动启动
• build:指定要使用的 Dockerfile 所在目录,Docker Compose 会自动执行 docker build 指令的动作
• ports: [hostPort]:[ContainerPort]:设定端口映射,即主机对外端口映射到容器内的端口
• volumes: [hostPath]:[containerPath]:将项目中的目录挂载到容器中指定的工作目录
• depends_on:依赖的服务
• environment:设定环境变量

3、运行服务:

$ sudo docker-compose up -d

启动或重启所有服务,在 yml 文件所在目录下运行该命令(加 -d 选项后台启动)即可。首次执行命令将拉取 service 节点下配置的镜像,然后安装容器,启动服务。

4、测试服务:

1)测试nginx及php

nginx对php的支持,需要进入nignx容器修改default站点的配置文件,操作如下:

a)进入nginx容器:
$ sudo docker-compose exec nginx sh

b)编辑default配置文件:
需要先安装vim:
# apt update
# apt install vim

# vim /etc/nginx/conf.d/default.conf

取消掉php模块的注释,做如下修改,当然也可以直接粘贴进去:

location ~ \.php$ {
root /var/www/html;
fastcgi_pass php:9000;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

c)修改完成,可以退出容器:
# exit

d)创建web项目目录及测试文件:
$ mkdir html
$ sudo echo "<h2>Hello World</h2>" > html/index.html
$ sudo echo "<?php phpinfokkk(); ?>" > html/phpinfo.php

提醒:把多余的kkk去掉吧,我实在是无能为力了。

在浏览器中分别访问 server_ip:8080 和 server_ip:8080/phpinfo.php,将会看到 Hello World 及 phpinfo 的页面信息。

2)测试mysql:

进入mysql容器:
$ sudo docker-compose exec mysql bash

登录mysql查看版本:
# mysqladmin -uroot -p version

退出容器:
# exit

5、查看当前运行的服务:

# docker-compose ps

后记:

以上只是简单的lnmp环境搭建,安装php扩展,优化nginx、php、mysql配置,绑定域名安装ssl证书这些gooogle一下,自己就操作就可以了。

纯手工打造,喜欢的就点赞收藏吧。。。

热议
2楼 louiejordan 7小时前

绑定,感谢分享

3楼 sRGB 7小时前

有 ARM 的帮我试试,这个 LNMP,自己的甲骨文一直开开不出 ARM

# 一键 WordPress 博客安装脚本

curl -Lgit.io/lnmp.sh | bash

4楼 wifitry 7小时前

感谢分享,收藏了

5楼 hanjibin 7小时前

牛批

6楼 philsilver 半小时前

技术贴啊,mark

7楼 肥而不腻 半小时前

大佬,连备份、转移服务器什么的都一起来一份教程啊

8楼 惜为伊人醉 25分钟前

感谢分享

9楼 zjonetop 22分钟前

10楼 xuqiangbao 22分钟前

mark一下

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » ARM版Ubuntu通过Docker Compose搭建LNMP环境小白教程-zidon
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活