docker 安装 导出 导入 自启动程序

docker安装:

先安装software-properties-common,这样才可以用add-apt-repository命令来增加第三方仓库了。

sudoapt-getinstallsoftware-properties-common

接着增加dotcloud的仓库

sudoadd-apt-repositoryppa:dotcloud/lxc-docker

sudoapt-getupdate

接着安装docker:

命令:

sudoapt-getinstalllxc-docker

如果上面命令安装不了,试着下面命令:

sudosh-c"echodebhttp://get.docker.io/ubuntudockermain>/etc/apt/sources.list.d/docker.list"sudoapt-getupdatesudoapt-getinstalllxc-docker

安装完之后执行

dockerimages

没报错说明安装成功

导出:

sudodockerexportCONTAINERID>/root/x.tar

导入x.tar

大概需要五到十几分钟,导入完成后会输出一长串字符串

导入命令:

cat/path/x.tar|sudodockerimport–xxxx

/path/x.tar:就是你的x.tar存放的完整路径

导入完之后执行dockerimages 看到下面输出说明安装成功

root@li671-138:/root/#dockerimages

REPOSITORYTAGIMAGEIDCREATEDVIRTUALSIZE

xxxxlatest8ead5f541ed12weeksago6.519GB

启动镜像:

dockerrun-it--nameCONTAINER_NAMES-v/root/data/CONTAINER_NAMES:/root/data-p22223:22-p80:80-p18010:18010-p8001:8001-p8002:8002-p81:81xxxx/bin/bash

CONTAINER_NAMES:给创建的容器取哥哥名称

-v:/root/data/CONTAINER_NAMES本机的目录

/root/data容器内的目录

启动成功后就会直接进去(如果执行上面命令后没反应,敲下回车)

会看到类似下面的界面,说明已经进去:

root@cb428b7ff639:/#...

启动服务,命令:

/root/start.sh

===================================

#!/bin/sh

ps-fe|grepapache2|grep-vgrep

if[$?-ne0]

then

echo"startapache2...."

serviceapache2start&

sleep5

else

echo"apache2isruning....."

fi

ps-fe|greppostgresql|grep-vgrep

if[$?-ne0]

then

echo"startpostgresql...."

servicepostgresqlstart&

sleep5

else

echo"postgresqlisruning....."

fi

=======================================

启动完成后,大概二到三分钟打开浏览器访问

IP:你系统的ip

启动的这些程序你也可以让它开机的时候启动,我的方式是

把镜像xxxx.tarimport之后,运行时候去执行/etc/rc.local

dockerrun-it-p80:80xxxx/etc/rc.local

rc.local里写着你要执行启动的那些服务,开始只是加了启动的服务,启动完就退出了,后来往rc.local里加了/bin/bash才在后台正常运行,第一次run是直接进入docker里,退出之后,执行dockerps-a会看到CONTAINERID,之后只要dockerstartCONTAINERID,启动之后dockerCONTAINER会在后台运行,dockerattchCONTAINERID进入容器可以看到正在运行的服务(当然是还服务多还没有执行完的时候)

dcoker容器里,我的rc.local是

===========================

#!/bin/sh-e

#

#rc.local

#

#Thisscriptisexecutedattheendofeachmultiuserrunlevel.

#Makesurethatthescriptwill"exit0"onsuccessoranyother

#valueonerror.

#

#Inordertoenableordisablethisscriptjustchangetheexecution

#bits.

#

#Bydefaultthisscriptdoesnothing.

servicemysqlstart&

sleep5

servicememcachedstart&

sleep5

serviceredis-serverstart&

sleep5

servicerabbitmq-serverstart&

sleep5

servicenginxstart&

sleep5

mongod-f/etc/mongodb.conf&

sleep5

serviceelasticsearchstart&

sleep5

/etc/init.d/sshstart&

sleep5

/bin/bash

exit0

=====================================

这是docker开机程序启动,但如果要求服务器启动的时候要求启动项目,那就要在服务器上启动docker,我使用的ubuntu,docker服务开机启动,只要把启动项目的服务器加进服务器的/etc/rc.local里就行

这是我的ubuntu/etc/rc.local

===========================

#!/bin/sh-e

#

#rc.local

#

#Thisscriptisexecutedattheendofeachmultiuserrunlevel.

#Makesurethatthescriptwill"exit0"onsuccessoranyother

#valueonerror.

#

#Inordertoenableordisablethisscriptjustchangetheexecution

#bits.

#

#Bydefaultthisscriptdoesnothing.

dockerstartCONTAINERID&

exit0

===============================

另外一种启动方式

vish为容器,这里可以是容器id

dockerrun-d--namevish_00-p3030:3000-p3080:80-p22222:22vish/usr/sbin/sshd-D

sshroot@127.0.0.1-p22227

相关推荐