基于 Docker 搭建 LAMP 环境(二 dockerfile)

为什么80%的码农都做不了架构师?>>>   hot3.png

此种方式将镜像的构建过程通过 Dockerfile 记录下来,并通过构建命令,构建最终镜像,便于对镜像的修改和管理。

但是此种方式,仍热是 Fat Container 形式,产生的镜像文件比较大,当环境较复杂时 Dockerfile 也会很复杂且不便于整体管理,所以还是不推荐生产环境使用。

主要文件

  • Dockerfile
##############################################################
# 基于官方基础镜像 Ubuntu 16.04 制作
# 安装常用工具包:
#	software-properties-common vim wget curl openssh-server sudo net-tools
# 采用 apt-get 形式安装 LAMP 环境
# VERSION 0.1
##############################################################FROM ubuntu:16.04
MAINTAINER whoru.S.Q <whoru.sun@gmail.com># 非交互模式
ENV DEBIAN_FRONTEND=noninteractive# 设置字符集
ENV LC_ALL=C.UTF-8# 预安装的工具包 
ENV DEV_TOOLS='software-properties-common vim wget curl \openssh-server sudo net-tools ' # 系统初始化
COPY ./sources.list /etc/apt/sources.list 
RUN apt-get update \# 安装工具包&& apt-get install -y $DEV_TOOLS  \&& mkdir -p /var/run/sshd \# 追加普通用户,用于 ssh 登录&& useradd -d /home/admin -m -s /bin/bash admin \&& echo 'admin:admin' | chpasswd \&& echo 'admin	ALL=(ALL)	ALL' >> /etc/sudoers \&& mkdir -p /home/admin/bin \##############################################################&& echo '=====> Installing MySQL server and client ...' \&& apt-get install -y mysql-server mysql-client \&& usermod -d /var/lib/mysql/ mysql \&& echo '=====> Installing Apache2 ...' \&& apt-get install -y apache2 \&& echo 'ServerName localhost' >> /etc/apache2/apache2.conf \&& echo '=====> Installing PHP and Plugins ...' \&& add-apt-repository ppa:ondrej/php \&& apt-get update \&& 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 \############################################################### 清理&& echo '=====> Cleaning ...' \&& apt-get clean \&& apt-get autoclean \&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \# 定义匿名卷,以免动态数据写入
VOLUME /var/www/html /var/lib/mysql# 设置启动脚本
COPY ./start.sh /home/admin/bin
WORKDIR /home/admin/bin
RUN chmod -R 755 /home/admin/bin# 定义要暴露的端口
EXPOSE 22 80 3306 # 启动命令
CMD ["./start.sh"]
  • 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
  • start.sh
#!/bin/bash/etc/init.d/ssh start
/etc/init.d/mysql start
/etc/init.d/apache2 start

构建

$ docker build -t lamp:v2 .

运行

$ docker run -idt -P -v ~/www:/var/www/html lamp:v2
  • -v 这里将宿主机家目录下的 www 映射到所启动容器 apache 服务下的 web 根目录
  • -P 自动映射开放的端口(-p 4701:80 手动指定)

测试

浏览器访问 localhost(默认 80 端口)或 localhost:4701 访问 web


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

转载于:https://my.oschina.net/antsky/blog/892933

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22635.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 shell 使用 expect 实现 SSH 自动登录远程服务器

为什么80%的码农都做不了架构师&#xff1f;>>> 相关知识点 expect expect 是一个免费的编程工具&#xff0c;用来实现自动的交互式任务&#xff0c;而无需人为干预。 说白了&#xff0c;expect 就是一套用来实现自动交互功能的软件。 在实际工作中&#xff0c;我们…

使用docker安装lamp

docker search - s 10 lamp #搜索被收藏或使用较多的LAMP镜像&#xff0c;小伙伴们都推荐使用tutum/lamp docker pull tutum / lamp #下载镜像 #使用默认方式启动LAMP docker run - d - p 8080 : 80 - p 3306 : 3306 tutum / lamp #友提&#xff0c;如果报bind:addr…

centos7安装最新版git_https://my.oschina.net/antsky/blog/514586

whoru 发表于 2年前 阅读 5961收藏 10点赞 1评论 1 腾讯云 普惠云计算 0门槛体验>>> 摘要: 介绍yum和源码包安装的具体方式 方式一、yum安装 # yum install git 通过yum方式安装&#xff0c;版本比较旧&#xff0c;CentOS6.5上安装好是1.7.1版。如果想安装最新版或…

vim 基础版配置

为什么80%的码农都做不了架构师&#xff1f;>>> 只包含一些最常用的基础配置&#xff0c;以改进 vim 的初始状态。 使用&#xff1a;拷贝以下内容到 ~/.vimrc 文件中&#xff0c;没有此文件请自行创建。 """""""""&q…

tmux 基本配置

为什么80%的码农都做不了架构师&#xff1f;>>> 将以下内容拷贝到 ~/.tmux.conf 文件中&#xff0c;没有此文件的请自行创建。 ############################################################ # Author: whoru.S.Q <whorusqiang.net> # Link: https://githu…

Linux 下 MySQL 自动备份脚本

为什么80%的码农都做不了架构师&#xff1f;>>> 源码 mysqlDump.sh #!/bin/bash ################################################ # TODO: 备份当前服务器上指定的数据库&#xff08;多个库&#xff0c;以 , 分隔&#xff09; # 示例&#xff1a; # ./mys…

Shell 脚本入门及语法速查

为什么80%的码农都做不了架构师&#xff1f;>>> [TOC] 1. Hello World 1.1. 基本结构 创建 helloWorld.sh 文件&#xff0c;写入如下内容&#xff1a; #!/bin/bashecho "hello world"其中 #! 告诉系统其后路径所指定的程序是解释此脚本文件的 Shell 程序…

Linux 文件管理命令

复制文件 命令(copy)&#xff1a; cp 源文件 目标文件/文件夹 cp -r 源文件夹 目标文件夹删除命令 命令(remove)&#xff1a; rm 文件1 文件2 文件2 ... rm -rf 文件夹1 文件夹2...远程连接 SSH 用于进行Linux的远程操作, 其原理为: 打包命令 tar 打包命令 tar -czvf 文…

jy-13-LINUX——Linux

目录&#xff1a; 1、day01-Linux-什么是Linux 2、day02-Linux-文件管理命令 3、day03-Linux &#xff0d;Windows SSH 客户端工具 4、Linux&#xff0d;下载命令wget 5、在linux下启动tomcat命令 张闹&#xff1a; 1、day01-Linux-什么是Linux 是一个OS&#xff0c;是Uni…

mysql数据库insert语句怎么写_mysql数据库中的insert语句解决方案

mysql数据库中的insert语句 数据库t_users中&#xff0c;包括三个字段user_id,user_name,user_password 其中 user_id设置为自动递增 为了实现注册功能 注册想就有两项 用户名和 密码 我写的sql语句是&#xff1a; insert into t_users values (?,?); 表明插入用户名和密码两…

修改Xshell字体大小和颜色

博客专区 > XManager的博客 > 博客详情 修改Xshell字体大小和颜色 XManager 发表于7个月前 分享到&#xff1a; 一键分享 QQ空间 微信 腾讯微博 新浪微博 QQ好友 有道云笔记 原 修改Xshell字体大小和颜色 收藏 XManager 发表于 7个月前阅读 849收藏 1点赞 0 评论 1 …

抽象类和抽象方法

抽象类 抽象类只能被继承&#xff0c;无法直接实例化。避免被直接实例化调用&#xff0c;相当于半成品&#xff0c;不能拿来直接使用。抽象方法 抽象方法只能定义&#xff0c;无法写方法体。后续继承后重写。 public abstract class Person{String name;int age;public void w…

基于openai打造公司内部知识库问答机器人

ChatGPT概念 OpenAI是一家AI研究和部署公司&#xff0c;开发了一个针对普通用户的ChatGPT的免费对话式AI机器人产品&#xff0c;该产品基于GPT-3.5模型&#xff0c;同时也推出了一个付费的ChatGPT Plus产品&#xff0c;该产品基于GPT-4模型。很明显&#xff0c;在国内是使用不…

稚晖君刚拿了百度投资,估值被曝已超独角兽

衡宇 发自 凹非寺 “华为天才少年”稚晖君创业项目&#xff0c;刚被百度风投投了&#xff01; 量子位获悉&#xff0c;稚晖君创业项目智元机器人&#xff0c;日前完成了第三轮融资&#xff0c;市场估值被曝在十几亿美元左右。 天眼查App显示&#xff0c;本轮新增股东包括李彦宏…

40亿个QQ号,限制1G内存,如何去重?

40亿个QQ号&#xff0c;限制1G内存&#xff0c;如何去重&#xff1f; 40亿个unsigned int&#xff0c;如果直接用内存存储的话&#xff0c;需要&#xff1a; 4*4000000000 /1024/1024/1024 14.9G &#xff0c;考虑到其中有一些重复的话&#xff0c;那1G的空间也基本上是不够用…

一次读完半本「三体」!GPT-4最强竞品突然升级10万token,啃论文代码演示全搞定...

视学算法报道 编辑&#xff1a;编辑部 【导读】GPT-4 32K还没用上&#xff0c;ChatGPT最强竞品已经秒读「了不起的盖茨比」了。 在GPT-4 32K还在内测阶段&#xff0c;OpenAI的劲敌直接把上下文长度打了上去。 就在今天&#xff0c;初创公司Anthropic宣布&#xff0c;Claude已…

自从Notion有了AI……

“Notion AI是一款极其强大且易于使用的工具&#xff0c;可以帮助您整理知识&#xff0c;撰写文档和记录笔记。它为您提供了一个可以实现简单快捷导航的用户界面&#xff0c;使您可以轻松访问和管理所有的文件和资源。它还提供了一系列强大的功能&#xff0c;包括个性化定制&am…

100 美元“骗走” 15% 股份?估值 10 亿美元的创业独角兽 Stability AI 联合创始人起诉 CEO...

整理 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 2022 年 8 月&#xff0c;一款名为 Stable Diffusion 的开源文本生成图像模型横空出世&#xff0c;惊艳四座。 一定程度&#xff0c;它的出现加速了 OpenAI 想更早推出 ChatGPT 的决心。 而就是这样一款…

HTML情人节表白代码,给女朋友的电子情书代码,女朋友表白代码

HTML情人节表白代码&#xff0c;给女朋友的电子情书代码&#xff0c;女朋友表白代码,可更换照片及表白内容。 使用方法 1、表白对话在assets/dialog.json 2、女朋友照片放在img中&#xff0c;直接替换即可 3、代码包需要放在WEB服务器里运行&#xff0c;本地用浏览器直接打开…

一封来自Java程序员的情书

点击上方“程序员小灰”&#xff0c;选择“置顶公众号” 有趣有内涵的文章第一时间送达&#xff01; 本文转载自公众号 Hollis 一直以来程序员都给大家以高智商低情商&#xff0c;不懂得浪漫不会哄女生开心的形象。但是&#xff0c;我觉得程序员都是浪漫的。对于这种错误观念&…