文档章节

基于 Docker 搭建 LAMP 环境(一 传统虚拟机形式)

whoru
 whoru
发布于 2017/05/04 15:05
字数 694
阅读 245
收藏 1

1.获取镜像,启动容器

这里使用官方镜像 Ubuntu 16.04,采用加速器 daocloud.io 以解决国内访问 docker-hub 慢的问题,也可以采用阿里云镜像加速器

$ docker pull ubuntu:16.04
$ docker run -it ubuntu:16.04
root@86ea8d701da0:/#

2. 在容器中配置所需要的开发环境

2.1. 替换阿里云软件更新源

root@86ea8d701da0:/# apt-get update
root@86ea8d701da0:/# apt-get install -y vim
root@86ea8d701da0:/# vim /etc/apt/sources.list
 
# 16.04
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

root@86ea8d701da0:/# apt-get update

2.2. 安装常用软件包

root@86ea8d701da0:/# apt-get install -y net-tools curl wget gcc sudo lsof software-properties-common

2.3. 安装 AMP 软件

# 安装 MySQL(过程中需要输入数据库的 root 密码)
root@86ea8d701da0:/# apt-get install -y mysql-server mysql-client
root@86ea8d701da0:/# usermod -d /var/lib/mysql/ mysql

# 安装 Apache2
root@86ea8d701da0:/# apt-get install -y apache2
root@86ea8d701da0:/# echo "ServerName localhost" >> /etc/apache2/apache2.conf

# 安装 PHP5.6
root@86ea8d701da0:/# add-apt-repository ppa:ondrej/php
root@86ea8d701da0:/# apt-get update
root@86ea8d701da0:/# apt-get install -y php5.6 libapache2-mod-php5.6 php5.6-dev php5.6-mysql php5.6-gd php5.6-curl php5.6-mbstring --allow-unauthenticated
root@86ea8d701da0:/# pecl install pdo_mysql

# 搜索其它 PHP 可安装插件
root@86ea8d701da0:/# apt-cache search 'php5.6'

2.4. 检查服务是否成功启动

# 使用 ps -ef 或 netstat -tlunp 查看 MySQL、Apache
# 如果服务没有自动启动,可使用如下命令手动启动
root@86ea8d701da0:/# service mysql start
root@86ea8d701da0:/# service apache2 start

2.5. 验证

root@86ea8d701da0:/# curl localhost

3. 清理垃圾

root@86ea8d701da0:/# apt-get clean 
root@86ea8d701da0:/# apt-get autoclean 
root@86ea8d701da0:/# rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/log/apache2/* /var/log/mysql/*
root@86ea8d701da0:/# echo /dev/null > ~/.bash_history

4. 提交变更

# 命令基本语法
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]

# 查看当前运行中的容器
$ docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
86ea8d701da0        ubuntu:16.04        "/bin/bash"         53 minutes ago      Up 53 minutes                           priceless_clarke

# 提交已经修改的容器为新的镜像
$ docker commit --author "whoru.S.Q <whoru.sun@gmail.com>" --message "init" 86e lamp:v1

# 查看镜像列表
$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
lamp                 v1                  fa80dfae1af0        8 minutes ago       875 MB
ubuntu               16.04               0ef2e08ed3fa        8 weeks ago         130 MB

5. 以新镜像启动容器

# 映射为 8888 端口;本地 www 目录
$ docker run -idt -p 8888:80 -v ~/www:/var/www/html lamp:v1
e629b4c8bb3e3c1c3491e9da2f4a230a22e5172bddaaeb0ced8c3b807393ca2c

# 既然容器手动启动一下服务
$ docker exec -it e62 /bin/bash
root@e629b4c8bb3e:/# service apache2 start
root@e629b4c8bb3e:/# exit

浏览器访问:localhost:8888


更多内容,请访问:https://github.com/whorusq/docker-learning

© 著作权归作者所有

whoru
粉丝 19
博文 167
码字总数 79254
作品 0
济南
高级程序员
私信 提问
Docker学习与和应用(一)_初步认识

Docker解决了什么问题 Docker项目的发起人Solomon Hykes认为: Docker在正确的地点,正确的时间顺应了正确的趋势--即高效地构建应用。 随着各种云平台的兴起,开发者或者应用部署者有一种迫...

dhb_oschina
2016/06/18
290
0
Vagrant 入门及基于 Vagrant 的 LAMP 开发环境搭建

[vagrant-homepage]: https://www.vagrantup.com "Vagrant homepage"[vagrant-docs]: https://www.vagrantup.com/docs "Vagrant docs"[vagrant-box]: https://atlas.hashicorp.com/boxes/sea......

whoru
2017/03/06
218
0
Dockerfile快速搭建自己专属的LAMP环境

自从用上公司的Docker环境,再也很少直接在系统上搭建LAMP环境了,在摸索如何用Docker搭建LAMP环境,折腾多种方式后,觉得Dockerfile是一种不错的方式。 当然一开始自己用Dockerfile肯定无从...

小和
2016/11/02
205
0
[Docker]Docker简介

1. 什么是Docker Docker是开源项目。Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐渐形成...

sjf0115
2016/06/20
0
0
docker入门(一)

docker是docker.lnc公司开源的一个基于LXC技术之上构建的container容器引(openstack是基于KVM),源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源。 docker是通过内核(linux内核...

小菜运维
2017/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cesium调用天地图服务

本文转载于:专业的前端网站➧cesium调用天地图服务 全球矢量地图服务 var viewer = new Cesium.Viewer("cesiumContainer", { animation: false, //是否显示动画控件 baseLayerPi...

前端老手
26分钟前
4
0
Docker常用命令

场景一:镜像下载、运行及删除 COMMAND DESC 查看 docker images 列出所有镜像(images) docker ps 列出正在运行的容器(containers) docker ps -a 列出所有的容器 docker pull centos 下载cen...

_Change_
27分钟前
5
0
Spark ML使用DataFrame进行K-Means

1.前言 前一篇文章使用了RDD的方式,进行了K-Means聚类. 从Spark 2.0开始,程序包中基于RDD的API spark.mllib已进入维护模式.现在,用于Spark的主要机器学习API是软件包中基于DataFrame的API...

一位不知名的帅气网友
30分钟前
4
0
当遇到美女面试官之如何理解Redis的Expire Key(过期键)

  在面试中遇到美女面试官时,我们以为面试会比较容易过,也能好好表现自己技术的时候了。然而却出现以下这一幕,当美女面试官听说你使用过Redis时,那么问题来了。 👩面试官:Q1,你知道...

ccww_
34分钟前
5
0
干货来袭!游戏背景音乐的角色创建和主界面

角色创建/选择 在一些大型的游戏中,例如多人在线的游戏玩家必须创建一个游戏的虚拟人物进行扮演游戏。初次玩这款游戏的人都会进行创建,选择职业起名字性别选择编辑人设样式等等的操作,通常...

奇亿音乐
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部