新安装完操作系统的服务器,我一般在/root目录中进行服务器的初始化配置,其中一个重要的脚本就是安装docker、git、hg等必备的工具,我叫他init

#!/bin/bash

# install git
yum install git


# install docker
yum update

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

yum install docker-engine

service docker start

如果我以root运行Docker,我一般是用/root作为工作目录;如果以其他用户运行的Docker,如:jilili,我将在/home/jilili作为我的工作目录,请确保你的工作目录有足够的空间,否则,请把工作目录放在有空间的地方;

这是我的服务器工作目录

# ls ~/
c4print  init  nginx  objstsvr  x5wiki  x5blog  x5www  x5code

c4print 是一个包含多个服务的项目目录,其它几个目录为单独的Docker应用的目录;其中的update是执行更新,因为更新时他们有link依赖关系,所以使用update一次整体按顺序更新:

# ls ~/c4print/
c4operation  c4service  c4store  c4weixin  mysql  update

写几个简单脚本管理Docker容器

开始建立docker容器前,我一般为每个docker容器建立一个工作目录,里面放置几个脚本:

单独一个的服务目录如下:

# ls ~/c4print/c4service/
build  config  create  src  test  update

src :是服务的源码目录,这里是一个基于django的服务;

# ls src
c4service  Dockerfile  DOCKER.md  init  init.sql  manage.py  nginx.conf  README.md  requirements.txt  start

config :定义生成的image的名称、容器的名称等

export container_name="c4service"
export image_name="nihw/c4service"

build :用来构建image;

#!/bin/bash
basepath=$( cd `dirname $0`; pwd )
. $basepath/config

cd $basepath/src && git pull && cd .. && docker build -t $image_name ./src

create :用image创建容器

#!/bin/bash
basepath=$( cd `dirname $0`; pwd )
. $basepath/config

docker run --name $container_name -e DB_HOST=rm-bp2dw017e0v0e212do.mysql.rds.aliyuncs.com -e DB_PORT=3306 -e DB_USER=c4print -e DB_PASSWD=dbpass -e DB_NAME=c4print --restart=always -td $image_name /bin/bash

update :用于更新代码、重新构建image及创建容器

#!/bin/bash
basepath=$( cd `dirname $0`; pwd )
. $basepath/config

cd $basepath
./build && docker stop c4service && docker rm c4service && ./create

[ 编辑 | 历史 ]
最近由“jilili”在“2016-12-02 13:18:55”修改