用Docker尝试搭建了一个Apache2服务器,整体安装很简单,但是从容器中退出后,Apache2服务器也就随之停止,网上有很多说可以通过docker run 加上-d参数可以使得服务器跑在后台,但是我试了以后,发现-d启动起来的容器的状态是exit,而且用docker start也无法改变状态,不知道是我操作有误,还是其他的原因,如果其他朋友有更好的解决方法,欢迎留言交流。

经过一番摸索,使用了如下方法,终于 得以解决。

因为是学习之用,故从最开始配置docker开始记录,大神请忽略这部分。

1、首先是安装docker,Linux下很简单,apt-get就可以了

2、然后是下载响应的镜像,我这里下载了ubuntu:14.04/ubuntu:16.06:

docker pull ubuntu:14.04
docker pull ubuntu:16.04

3、启动一个容器,安装我们需要的服务器环境(apache\php\vim……,根据自己服务器需要即可)

docker run -it ubuntu:14.04 /bin/bash

可以看到,我们已经进入到我们的docker容器中来了,接下来就是按照正常的程序安装我们需要的软件即可

安装方法有很多,Debian系的apt-get install;红帽系的:yum install;这里不再赘述

4、安装完成后,我们需要保留下我们已经安装好的容器,以备后用

这一步有两种方式

(1)如果只是一台服务器自己用,可以直接用:docker commit来构建

docker commit -m "Apache2 Server" -a "toor" 7dd7ef463447(CONTAINER ID) server/ubuntu-t:14.04

这里解释下参数:-m 容器的注释,一般告诉我们这个容器是用来干什么的

        -a  表示容器的维护者,一般是容器创建者

        后面的那串数字是你的容器号,就是图中红色方框标识出来的字符串

        再后面的server/ubuntu-t是你给这个容器起的别名,冒号后面是你给容器标记的版本号。这部分是为了唯一标识这个容器

接下来我们就可以通过命令:“docker images” 看到自己创建好的容器了,如下图红色标识的位置所示

(2)如果我们需要把做好的容器与他人分享,这就需要通过docker build方式来制作,这里以我们刚才制作的server/ubuntu-t为例,方式如下:

首先新建一个目录:apache-server

mkdir apache-server

然后在apache-server文件夹下创建一个Dockerfile文本文件,并向其中写入基本的控制语句:

FROM server/ubuntu-t:14.04 #指定使用哪一个镜像
MAINTAINER toor #指定镜像维护者

进入apache-server文件夹,执行下列语句

docker build -t="server/ubuntu-t1:14.04" .

说明一下参数:-t参数指定新的tag名称,即唯一确定镜像的连个标识符

我们可以看到新的镜像id,docker images也可以看到新的镜像,如下。

5、接下来就是如何解决我们让含有Apache的服务器能正常后台工作的步骤了

(1)通过docker run来启动docker

docker run -it -p : server/ubuntu:14.04 /bin/bash

(2)正常启动容器,进入到容器的shell后,开启apache2服务

/etc/init.d/apache2 start

(3)服务启动后,按下ctrl+d退出容器

(4)我们看到,此时容器的状态是exited,我们启动这个容器

docker start c74fdcdfe7da(CONTAINER ID)

(5)容器启动起来后,进入容器重新开启apache2服务,然后ctrl+d退出容器

我们看到这次容器的状态依旧是UP的。测试相应的端口转发也是正常的,这样我们就可以通过docker对外安全的提供服务了。

(6)如果要停止相应的容器,执行相应的停止命令即可:

docker stop c74fdcdfe7da(CONTAINER ID)

Docker搭建独立服务器的更多相关文章

  1. Docker搭建Svn服务器

    一.下载镜像 # 搜索镜像 docker search svn # 下载镜像 docker pull garethflowers/svn-server 二.启动镜像 # 编辑配置文件 vim dock ...

  2. Centos7使用docker搭建gitlab服务器

    了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...

  3. 使用Docker搭建svn服务器教程

    svn简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subv ...

  4. 利用docker搭建rtmp服务器(1)

    以后的项目里面可能需要用到直播,所以就先看看 本来想在自己MAC上搭建nginx的,后来怕把自己的机子搞乱,刚好就学习了下docker,感觉docker强大就在于是一个操作系统软件的版本管理系统,可以 ...

  5. docker 搭建ntp服务器

    背景 在搭建etcd集群时,如果主机时间相差太多会出现同步错误,如果外部网络不可用时,需要使用内部的ntp服务器同步时间. 构建ntp镜像 创建Dockerfile # usage: # docker ...

  6. docker搭建gitlab服务器(Centos7)

    系统环境:CentOS Linux release 7.6.1810 (Core) git版本:gitlab/gitlab-ce 一.安装和启动docker 见HTTPRUNNERMANAGER安装部 ...

  7. 基于Docker搭建GitLab服务器

    运行环境:CentOS 7.4 一.安装Docker Docker安装可以参照runoob教程(http://www.runoob.com/docker/centos-docker-install.h ...

  8. 使用docker搭建gitlab服务器

    简单记录Docker的使用和GitLab的搭建 Docker基础篇 没有sudo权限 安装docker 基础命令 docker安装mysql和配置 Dockerfile常用命令 制作镜像 发布镜像 容 ...

  9. 使用docker搭建gitlab 服务器

    本次使用的docker版本为 1.首先需要安装docker. 2.启动docker后,service docker start   3.拉取镜像  docker pull gitlab/gitlab- ...

随机推荐

  1. Linux下mysql允许远程连接怎么设置

    1.root用户登录到mysql数据库代码示例:/usr/local/mysql/bin/mysql -u root -p (输入密码进入mysql)2.进入mysql,输入:代码示例:use mys ...

  2. RabbitMQ学习之(一)_初步了解RabbitMQ、RabbitMQ的使用流程、为什么要使用RabbitMQ、RabbitMQ的应用场景

    初识RabbitMQ RabbitMQ是一个在AMQP协议基础上实现的消息队列系统, 是一个消息代理.它的核心原理非常简单:接收和发送消息.你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件 ...

  3. 理解 Dubbo SPI 扩展机制

    写在前面 最近接触了 gRPC 体会到虽然众多 RPC 框架各有各的特点但是他们提供的特性和功能有很多的相似之处 , 这就说明他们面对同样的分布式系统带来的问题.从 2016 年左右开始接触到 dub ...

  4. 20145307《信息安全系统设计基础》第五周学习总结PT2

    20145307<信息安全系统设计基础>第五周学习总结PT2: 教材学习内容总结 之前有第一部分学习总结: http://www.cnblogs.com/Jclemo/p/5962219. ...

  5. [Deep Learning] 神经网络基础【转】

    本文转载自:http://www.cnblogs.com/maybe2030/p/5597716.html 阅读目录 1. 神经元模型 2. 感知机和神经网络 3. 误差逆传播算法 4. 常见的神经网 ...

  6. Editor.md的安装使用(MarkDown)

    1.官网下载:http://pandao.github.io/editor.md/ 2.使用例子: <!DOCTYPE html> <html lang="zh-cn&qu ...

  7. LeetCode——Find Duplicate Subtrees

    Question Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, yo ...

  8. Spring mvc 字节流

    public static void responseDownloadFile(HttpServletRequest request, HttpServletResponse response, Fi ...

  9. 从0开始 数据结构 AC自动机 模板(from kkke)

    AC自动机模板 2.4.1 头文件&宏&全局变量 #include <queue> #define MAXN 666666 #define MAXK 26//字符数量 st ...

  10. hdu4310 - Hero - 简单的贪心

    2017-08-26  15:25:22 writer:pprp 题意描述: • 1 VS n对战,回合制(你打他们一下,需要受到他们所有存活人的攻击)• 你的血量无上限,攻击力为1• 对手血量及攻击 ...