zoukankan      html  css  js  c++  java
  • Docker搭建独立服务器

    用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、启动一个容器,安装我们需要的服务器环境(apachephpvim……,根据自己服务器需要即可)

    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 8080:80 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)

  • 相关阅读:
    FSR薄膜压力传感器使用教程
    3.7 基于51单片机+MC20的路径显示【使用STC15W内核】
    4.6 基于STM32+MC20地图显示路径功能
    ProgressDialog 进度条的初步认识
    初识别进度条
    Spinner simpleAdapte适配器 下拉列表
    下拉菜单 Spinner 简单纯字符串版
    onItemSelected 获取选中的 信息 3种方法
    GridView 二维排布
    datePicker 及 timePicker Diolage弹出对话框式 比较好看的 监听事件
  • 原文地址:https://www.cnblogs.com/zlgxzswjy/p/6551578.html
Copyright © 2011-2022 走看看