Docker容器 第二节 --- 运行容器化应用(game2048);部署一个完整的LAMP/Web应用堆栈
一、运行容器化应用(game2048)
通过MobaXterm连接远端的Linux(centos)服务器,进行配置Docker镜像加速器,然后测试、搜索、拉取和运行Docker容器。
终极目标:成功运行一个名为yakexi007/game2048的容器化应用,并将其服务通过服务器的80端口对外提供访问。
-
docker search nginx
目的:在Docker Hub官方仓库中搜索所有包含“nginx”关键词的公开镜像。这是一个独立的探索性命令,可能与后续步骤的直接目标无关,只是用来演示搜索功能或验证Docker命令可用性

-
echo '{"registry-mirrors":["https://docker.1ms.run"],"dns": ["8.8.8.8", "114.114.114.114"]}' | sudo tee /etc/docker/daemon.json > /dev/null
目的:配置镜像加速器(核心步骤),创建或覆盖Docker的守护进程配置文件 daemon.json

-
systemctl daemon-reload,systemctl restart docker
目的:①重新加载systemd管理器的配置。因为修改了systemd管理的Docker服务(docker.service)的相关配置文件(daemon.json),需要让systemd知晓这个变化②重启Docker服务。这是使上一步对 daemon.json 的修改生效的必要操作。重启后,Docker守护进程才会读取新的配置,启用镜像加速器和自定义DNS

-
docker search docker.1ms.run/nginx
目的:测试国内镜像站能不能正常使用

-
docker search docker.1ms.run/yakexi007
目的:搜一下这个用户的镜像,确认能搜到

-
docker pull docker.1ms.run/yakexi007/game2048
目的:从国内镜像站下载2048小游戏镜像

-
docker load -i game2048.tar
目的:将本地压缩包,直接导入镜像


-
docker run -d --name game2048 -p 80:80 game2048
目的:启动2048游戏容器

用箭头玩
二、部署一个完整的LAMP/Web应用堆栈
部署一个完整的LAMP/Web应用堆栈实现:
①分离前后端:后端使用MySQL数据库容器(存储应用数据),前端使用Apache HTTP服务器容器(提供Web界面)
②数据持久化:通过os.sql将初始化数据导入数据库
③容器之间通信:使用–link实现web容器访问数据库容器
-
docker load -i mysql.tar,docker load -i httpd.tar
目的:导入本地镜像


有一张图片省略 -
docker images
目的:显示镜像列表,确认镜像已经成功加载

-
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=redhat --name,dbserver mysql
目的:启动MySQL数据库容器 -
yum install -y mysql
目的:安装MySQL客户端工具,用于连接数据库容器 -
mysql -h 127.0.0.1 -u root -predhat < os.sql
目的:执行os.sql脚本文件,将数据导入MySQL数据库

-
docker run -d -p 80:80 --link dbserver:db --name webserver httpd:webapp
目的:创建web服务器容器,容器命名为 webserver

-
访问测试(替换为自己主机IP)
http://116.63.37.***/cgi-bin/action

更多推荐


所有评论(0)