Docker入门基础之应用实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 当我们掌握了Docker镜像和容器的基本用法后,我们现在能做些什么事情呢?现在我们就来看看使用Docker容器如何安装常见的软件,然后运行一个动态网站。下面我们来学习:1、安装Nginx2、安装PHP3、使用MySQL服务4、运行wordpress博客安装Nginx运行一个Alpine的容器,选择Alpine作为系统基础镜像是因为Alpine轻巧的体积,基础镜像只有5.53MB,相比ubuntu镜像的88.9MB要小十几倍。

当我们掌握了Docker镜像和容器的基本用法后,我们现在能做些什么事情呢?现在我们就来看看使用Docker容器如何安装常见的软件,然后运行一个动态网站。

下面我们来学习:

  • 1、安装Nginx
  • 2、安装PHP
  • 3、使用MySQL服务
  • 4、运行wordpress博客

安装Nginx
运行一个Alpine的容器,选择Alpine作为系统基础镜像是因为Alpine轻巧的体积,基础镜像只有5.53MB,相比ubuntu镜像的88.9MB要小十几倍。

 root@ubuntu:~# docker run -it -p 8080:80 alpine sh

安装nginx

 apk add nginx

修改nginx配置

 vi /etc/nginx/conf.d/default.conf

default.conf内容如下:

server {
    listen 80 default_server;
 ​
    root /home/www;
    index index.php index.html;
 }

创建Hello World

mkdir /home/www && echo "Hello World" > /home/www/index.html

创建/run/nginx目录

mkdir /run/nginx

启动nginx

nginx

在浏览器中访问 http://192.168.43.122:8080

nginx安装成功,WEB服务访问正常!
image

安装PHP
现在我们来安装PHP,方法还是一样,使用 apk add 命令来安装php7,php-fpm以及相关扩展。

apk add --no-cache php7 php7-fpm php7-ftp php7-pdo php7-mysqli php7-simplexml php7-xmlwriter php7-zlib php7-imagick php7-memcached php7-sockets php7-mcrypt php7-zip php7-pgsql php7-pdo_odbc php7-odbc php7-curl php7-iconv php7-xml php7-json php7-gd php7-session php7-opcache php7-pdo_sqlite php7-mbstring php7-common php7-pdo_mysql

以上顺带安装了很多php扩展,可根据实际需求增减。

现在启动php-fpm7

php-fpm7

修改nginx配置,添加php支持

vi /etc/nginx/conf.d/default.conf

内容如下

server {
        listen 80 default_server;

        root /home/www;
        index index.php index.html;
        
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /home/www$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
}

在网站目录中创建phpinfo.php

echo "<?php phpinfo(); ?>" > /home/www/phpinfo.php

重启nginx

nginx -s reload

在浏览器中访问 http://192.168.43.122:8080/phpinfo.php

PHP安装成功,WEB服务访问正常!
image

使用MySQL服务
我们不在Alpine里面安装MySQL,为了使用效率,这里我们直接使用官方镜像即可,新开一个ssh终端连接宿主机,在home目录下新建database目录

mkdir /home/database

使用官方mysql5.7镜像运行一个容器,root密码设置为123456,映射3306端口,并将宿主机/home/database目录挂载到容器/var/lib/mysql目录

docker run -dit -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /home/database:/var/lib/mysql mysql:5.7

docker ps查看容器

上图中看到,我们现在运行了2个容器,1个是安装了nginx和php的Alpine容器,1个是mysql5.7的容器

进入mysql容器

docker exec -it c8c85af64822 sh

登录并创建wordpress数据库

#用root用户登录
mysql -u root -p
#创建wordpress数据库
mysql> CREATE DATABASE wordpress;

运行wordpress博客
php网站环境和mysql数据库都准备好了,现在我们回到Alpine的ssh终端上,在容器内下载一个wordpress网站程序。

#进入网站目录
cd /home/www/
#下载wordpress
wget https://wordpress.org/latest.tar.gz
#解压
tar zxvf latest.tar.gz
#将wordpress目录下的文件复制到www目录下
cp -ri /home/www/wordpress/* /home/www/
#设置777权限
chmod -R 777 /home/www/

在浏览器中访问 http://192.168.43.122:8080,可以看到wordpres页面
image

填写数据库信息
image

安装完成,wordpress正常使用!
image

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
2月前
|
Kubernetes 开发者 Docker
构建高效微服务架构:Docker与Kubernetes的协同应用
【5月更文挑战第30天】 在当今软件开发领域,微服务架构已成为实现系统模块化、提升可维护性及扩展性的关键策略。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理,共同构建一个既高效又可靠的后端微服务环境。我们将剖析Docker和Kubernetes的核心功能,以及它们如何相辅相成,支撑起现代化的云原生应用程序部署和管理。文章还将提供具体实践案例,帮助开发者理解将理论应用于实际开发过程中的步骤和考虑因素。
|
11天前
|
运维 Linux Docker
Docker Hub 镜像拉取超时:1Panel面板中应用安装失败的临时解决方案
`1Panel` 是一款Linux服务器管理面板,提供图形化界面便于运维。若在安装应用时遇到问题,可以尝试使用Docker加速地址 <https://docker.1panel.live/>,但请注意该地址可能不稳定且仅限境内使用。首届 `1Panel` 运维节将在2024年7月24日举行,更多信息可访问官方链接。
243 1
Docker Hub 镜像拉取超时:1Panel面板中应用安装失败的临时解决方案
|
2天前
|
持续交付 云计算 开发者
Docker容器技术在软件开发中的应用
【7月更文挑战第25天】Docker容器技术凭借其轻量级、可移植和高效的特点,在软件开发中发挥着越来越重要的作用。通过容器化技术,开发者可以更加方便地构建、部署和管理应用程序,提高开发效率和应用程序的可靠性。随着云计算和现代应用开发的不断发展,Docker容器技术将在更多领域得到广泛应用,为企业的数字化转型提供有力支持。
|
1天前
|
存储 关系型数据库 数据安全/隐私保护
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
【7月更文挑战第23天】使用Docker部署Plik 临时文件上传系统
6 0
【Docker实战项目】使用Docker部署Plik 临时文件上传系统
|
19天前
|
存储 Java Docker
使用Docker部署Java应用的最佳实践
使用Docker部署Java应用的最佳实践
|
25天前
|
安全 关系型数据库 开发者
Docker Compose凭借其简单易用的特性,已经成为开发者在构建和管理多容器应用时不可或缺的工具。
Docker Compose是容器编排利器,简化多容器应用管理。通过YAML文件定义服务、网络和卷,一键启动应用环境。核心概念包括服务(组件集合)、网络(灵活通信)、卷(数据持久化)。实战中,编写docker-compose.yml,如设置Nginx和Postgres服务,用`docker-compose up -d`启动。高级特性涉及依赖、环境变量、健康检查和数据持久化。最佳实践涵盖环境隔离、CI/CD、资源管理和安全措施。案例分析展示如何构建微服务应用栈,实现一键部署。Docker Compose助力开发者高效驾驭复杂容器场景。
35 1
|
6天前
|
运维 Kubernetes Docker
|
1月前
|
jenkins 持续交付 开发者
利用Docker容器化部署应用的实战指南
【6月更文挑战第27天】本文详述Docker应用部署,涵盖Docker基本概念、安装、镜像制作及运行。通过编写Dockerfile构建镜像,使用`docker build`、`run`、`push`及`stop`命令管理。集成CI/CD工具如Jenkins,实现自动化构建、测试和部署,提升开发效率与部署质量。Docker助力轻量级、可移植的微服务架构。
|
1月前
|
NoSQL Redis Docker
Docker再学习 - 实战
Docker再学习 - 实战
21 1