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
先安装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