ARM版Ubuntu通过Docker Compose搭建LNMP环境小白教程
侧边栏壁纸
  • 累计撰写 57,311 篇文章
  • 累计收到 0 条评论

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

James
2021-09-13 / 0 评论 / 72 阅读 / 正在检测是否收录...

说明:

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

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

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

姐妹篇教程,看这里:

ARM版Ubuntu通过DockerCompose搭建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使用存储库:

$sudoapt-getupdate

$sudoapt-getinstall

apt-transport-https

ca-certificates

curl

gnupg

lsb-release

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

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

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

$echo

"deb[arch=arm64signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]https://download.docker.com/linux/ubuntu

$(lsb_release-cs)stable"|sudotee/etc/apt/sources.list.d/docker.list>/dev/null

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

$sudoapt-getupdate

$sudoapt-getinstalldocker-cedocker-ce-clicontainerd.io

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

$dockerversion

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

systemctlenabledocker

systemctlstartdocker

二、安装DockerCompose

1、安装dockercompose:

$sudoapt installdocker-compose

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

2、安装最新版dockercompose(forarm):

安装arm版本的dockercompose,推荐使用linuxserver.io编译好的镜像脚本安装。执行以下两行命令即可:

$sudocurl-L--failhttps://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh-o/usr/local/bin/docker-compose

$sudochmod+x/usr/local/bin/docker-compose

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

$docker-compose--version

三、配置DockerCompose

参考目录树:

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、创建项目目录并进入:

$mkdirdk-app&&dk-app

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

$sudovimdocker-compose.yml

内容如下:

指定语法版本

version:3

services:

构建mysql服务

mysql:

image:biarms/mysql:5.7 #supportsmysqlforarm

#image:ubuntu/mysql #onlysupportsmysql8.0forarm,想装新版可使用此镜像

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所在目录,DockerCompose会自动执行dockerbuild指令的动作

•ports:[hostPort]:[ContainerPort]:设定端口映射,即主机对外端口映射到容器内的端口

•volumes:[hostPath]:[containerPath]:将项目中的目录挂载到容器中指定的工作目录

•depends_on:依赖的服务

•environment:设定环境变量

3、运行服务:

$sudodocker-composeup-d

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

4、测试服务:

1)测试nginx及php

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

a)进入nginx容器:

$sudodocker-composeexecnginxsh

b)编辑default配置文件:

需要先安装vim:

aptupdate

aptinstallvim

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

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

location~.php${

  root        /var/www/html;

  fastcgi_pass  php:9000;

  fastcgi_index  index.php;

  fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;

  include      fastcgi_params;

}

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

exit

d)创建web项目目录及测试文件:

$mkdirhtml

$sudoecho"

HelloWorld

">html/index.html

$sudoecho"<?phpphpinfokkk();?>">html/phpinfo.php

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

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

2)测试mysql:

进入mysql容器:

$sudodocker-composeexecmysqlbash

登录mysql查看版本:

mysqladmin-uroot-pversion

退出容器:

exit

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

docker-composeps

后记:

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

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


-----------------------------------------------------
网友回复:

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

一键WordPress博客安装脚本

curl-L git.io/lnmp.sh|bash


网友回复:

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

0