「开发者手册」手把手教你使用docker搭建你的服务器环境

最近在腾讯云买了一个服务器(1核、2GB、1Mbps、CentOS 7.2、64位),准备搭建自己的LAMP(Linux、Apache、Mysql、PHP)服务器,但登录上去后发现,其上除了一个CentOS系统啥都没有。最后,不得不从零开始,一步一步操作,完成LAMP服务器的搭建。

以下是具体操作步骤。

一、更改yum源

yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum默认的下载地址是国外地址,通常的下载速度是很缓慢的。因此,为了使后面的操作较为顺畅,我们先得将默认的yum源修改为国内源,如阿里和网易。

修改yum源,可以使用如下命令:

1、备份本地yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

2、获取阿里yum源配置文件

wget /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、更新cache

yum makecache

4、查看

yum -y update

二、安装Nginx

在这里,Nginx主要作为反向代理服务器,下载Nginx可以使用如下命令:

yum install nginx

三、安装Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。Docker容器完全使用沙箱机制,相互之间不会有任何接口。这样我们可以将本来的一台服务器,划分成多个相互不受影响的服务器。

安装docker,可以使用如下命令:

yum install docker

三、创建容器

Docker创建容器,是要以某一镜像为基础的。Doker下载镜像,使用如下命令:

docker pull 镜像名

为了方便后期管理,我们要创建了两个容器,一个容器运行PHP代码,一个容器运行MySQL。因此,在创建容器之前,我们先得下载相关镜像文件。如下:

1、下载支持PHP代码运行的镜像

docker pull docker.io/eboraas/apache-php

2、下载支持MySQL运行的镜像

docker pull docker.io/mysql

待所需镜像文件下载完毕后,就可以创建Docker容器了,如下:

1、创建MySQL容器

以上命令中,“ -e MYSQL_ROOT_PASSWORD=123456”表示设置MySQL数据root用户的登录密码为:123456。当命令执行成功后,执行docker exex -it mysqldb /bin/bash进入容器内部,启动mysql,此时mysql服务器就搭建成功了。

2、创建PHP容器

由于我的php项目需要连接mysql数据库,因此,在创建PHP容器的时候,需要将mysqldb这个容器连接过来,如下:

以上命令中,--link 命令就表示将mysqldb容器连接到myapp容器中。当以上命令执行成功后,在myapp容器中就可以使用db链接mysqldb容器了,进行数据库连接了。

四、设置Nginx代理

使用docker搭建的服务器,通常其上有比较多的容器,而且每个容器可能都运行着不同的项目。为了使外部能正常访问这些容器里运行的项目,我们一般需要使用nginx代理。设置nginx代理,可以按如下方式:

以上命令,表示将www.example.com域名映射到内部IP为172.17.0.3的容器。当命令执行成功后,你访问www.example.com就可以访问到172.17.0.3这个容器里运行的项目了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云安全的专栏

敲黑板 | 如何更好地保护云上资产?

“云”越来越不陌生,云上庞大的资产也成为不法分子觊觎的对象,他们喜欢窥探各处的信息,并使用工具,批量扫描、利用漏洞入侵机器,达到控制机器的效果;他们利用一个漏...

15140
来自专栏FreeBuf

揭秘如何使用跨平台的EvilClippy创建恶意MS Office文档

今天给大家介绍的是一款名叫EvilClippy的开源工具,EvilClippy是一款专用于创建恶意MS Office测试文档的跨平台安全工具,它可以隐藏VBA宏...

13230
来自专栏腾讯技术工程官方号的专栏

【Go API 开发实战 4】Go API 开发环境配置

Go 有多种安装方式,比如 Go 源码安装、Go 标准包安装、第三方工具(yum、apt-get 等)安装。本教程 API 运行在 Linux 服务器上,选择通...

20620
来自专栏FreeBuf

使用Okadminfinder3搜索管理员面板与登陆页面

今天给大家介绍的是一款名叫Okadminfinder3的工具,广大研究人员可以在渗透测试的过程中,利用它来查找目标程序的管理员面板接口或管理员账户登录地址。

11910
来自专栏华章科技

GitHub日收12,000星,微软新命令行工具引爆程序员圈

导读:继上次微软开源计算器刷爆GitHub后,北京时间5月7日凌晨在微软Build大会登场的Windows Terminal,如旋风般目前已登顶GitHub,上...

10130
来自专栏腾讯Bugly的专栏

Android app反调试与代码保护的一些基本方案

| 导语 本文介绍Android app代码(java + ndk)的反调试的方法和保护代码增加逆向难度的一些基本方法。 Android自问世以来得以迅速发展...

61840
来自专栏腾讯云TStack专栏

官宣!腾讯云TStack与IBM LinuxONE互认证

2019年1月21日,腾讯云TStack与IBM LinuxONE通过兼容性认证,这是腾讯与IBM在云计算领域的一次通力合作。

17230
来自专栏腾讯技术工程官方号的专栏

【Go API 开发实战 1】该教程所实现的 API 功能

本教程通过实现一个账号系统,来演示如何构建一个真实的 API 服务器,构建方法和技术是我根据之前的服务器开发经验不断优化沉淀而成。通过实战展示了 API 构建过...

26620
来自专栏CSDN技术头条

45 个值得关注的开源软件推荐

开源软件的重要性就不用多说了,它是IT工业的基础。它和我们每个人、每天的学习、工作、生活都息息相关,我们使用的互联网、物联网、车联网都广泛的依赖于它们。

35840
来自专栏腾讯云数据库(TencentDB)

关于MySQL | 这个问题100个人都没搞懂

点击上方蓝字每天学习数据库 作者简介:鲁越,腾讯云数据库架构师,主要负责腾讯云数据库MySQL、Redis、MongoDB、Oracle等数据库架构设计、数据...

21930

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励