设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] docker 安装 导出 导入 自启动程序

[复制链接]

尚未签到

发表于 2016-1-11 13:38:21 | 显示全部楼层 |阅读模式
docker安装:
先安装software-properties-common,这样才可以用add-apt-repository命令来增加第三方仓库了。
sudo apt-get install software-properties-common
接着增加dotcloud的仓库
sudo add-apt-repository ppa:dotcloud/lxc-docker
sudo apt-get update
 
接着安装docker:
命令:
sudo apt-get install lxc-docker

如果上面命令安装不了,试着下面命令: 
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list" sudo apt-get update sudo apt-get install lxc-docker
安装完之后执行
docker images
没报错说明安装成功

导出:
sudo docker export CONTAINER ID > /root/x.tar

导入x.tar
大概需要五到十几分钟,导入完成后会输出一长串字符串
导入命令:
cat /path/x.tar |sudo docker import – xxxx
/path/x.tar:就是你的x.tar存放的完整路径

导入完之后执行 docker images 看到下面输出说明安装成功
root@li671-138:/root/# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
xxxx              latest              8ead5f541ed1        2 weeks ago         6.519 GB

启动镜像:
docker run -it --name CONTAINER_NAMES -v /root/data/CONTAINER_NAMES:/root/data -p 22223:22 -p 80:80 -p 18010:18010  -p 8001:8001 -p 8002:8002 -p 81:81 xxxx /bin/bash

CONTAINER_NAMES: 给创建的容器取哥哥名称
-v: /root/data/CONTAINER_NAMES  本机的目录
    /root/data   容器内的目录
启动成功后就会直接进去(如果执行上面命令后没反应,敲下回车)
会看到类似下面的界面,说明已经进去:
root@cb428b7ff639:/#...


启动服务,命令:
/root/start.sh

===================================
#!/bin/sh

ps -fe|grep apache2 |grep -v grep
if [ $? -ne 0 ]
then
echo "start apache2 ...."
service apache2 start &
sleep 5
else
echo "apache2 is runing....."
fi

ps -fe|grep postgresql |grep -v grep
if [ $? -ne 0 ]
then
  echo "start postgresql ...."
  service postgresql start &
  sleep 5
else
  echo "postgresql is runing....."
fi
=======================================

启动完成后,大概二到三分钟打开浏览器访问
IP:你系统的ip


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

把镜像xxxx.tar import 之后, 运行时候去执行/etc/rc.local
docker run -it -p 80:80 xxxx  /etc/rc.local

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

dcoker 容器里,我的 rc.local是
===========================
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

service mysql start &
sleep 5
service memcached start &
sleep 5
service redis-server start &
sleep 5
service rabbitmq-server start &
sleep 5
service nginx start &
sleep 5
mongod -f /etc/mongodb.conf &
sleep 5
service elasticsearch start &
sleep 5
/etc/init.d/ssh start &
sleep 5
/bin/bash

exit 0
=====================================


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


这是我的ubuntu /etc/rc.local
===========================
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

docker start  CONTAINER ID &

exit 0
===============================
另外一种启动方式
vish 为容器,这里可以是容器id

docker run -d --name vish_00 -p 3030:3000 -p 3080:80 -p 22222:22 vish /usr/sbin/sshd -D

ssh root@127.0.0.1 -p 22227

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-163093-1-1.html 上篇帖子: 本地编译tomcat的docker镜像 下篇帖子: 使用Dockerfile编译自己的docker镜像
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表