上个月主要是把svn迁移回来本地,以及编写相关的处理脚本,然后就是安装部署docker,在本地服务器安装部署docker,然后部署环境给测试用,以及重新编写一些发布脚本,以及启动脚本。以下为docker的安装步骤:
在Ubuntu服务器上面的安装步骤:
1.0###配置docker.list:
sh -c "echo deb https://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.list"
2.0###下载公钥:
curl -s https://get.docker.io/gpg | sudo apt-key add -
3.0###没公钥就自己配置:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D8576A8BA88D21E9
4.0###更新apt源:
apt-get update
5.0###下载安装docker和以及一些必需的软件包:
apt-get install lxc-docker -y
6.0###检查
docker info
以下为基础操作命令:
###查找centos镜像:
docker search centos
###查看以下载的镜像:
docker images
###启动一个centos系统的容器并命名为docker-ceshi。其中-i 交互模式,-t伪终端,-d后台运行:
docker run -itd --name docker-ceshi centos /bin/bash
###查看正在运行的和停止的容器:
docker ps -a
###查看刚生成的容器
docker ps -l
###进入刚生成的容器docker-ceshi ,例如进入ceshi,命令如下:
docker-enter docker-ceshi
要退出容器直接输入exit即可。
###其中进入容器是使用docker-enter命令的,脚本如下:
#!/bin/sh
if [ -e $(dirname "$0")/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname "$0")/nsenter
else
NSENTER=nsenter
fi
if [ -z "$1" ]; then
echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
PID=$(docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
exit 1
fi
shift
OPTS="--target $PID --mount --uts --ipc --net --pid --"
if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
"$NSENTER" $OPTS su - root
else
# Use env to clear all host environment variables.
"$NSENTER" $OPTS env --ignore-environment -- "[email protected]"
fi
fi
##################end#################################
做容器的端口映射:
docker run -itd --name ceshi1 -p 1000:80 centos /bin/bash
本机docker主服务器ip为:192.168.0.168,要访问ceshi1的80端口,出现如下界面表示访问正常: