上個月主要是把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 p_w_picpaths
###啓動一個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 -- "$@"
fi
fi
##################end#################################
做容器的端口映射:
docker run -itd --name ceshi1 -p 1000:80 centos /bin/bash
本機docker主服務器ip爲:192.168.0.168,要訪問ceshi1的80端口,在瀏覽器輸入:
192.168.0.168:80