-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker_init.sh
72 lines (59 loc) · 1.81 KB
/
docker_init.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env bash
# cnsworder([email protected])
REGISTRY_SERVER="vsc3.vsct.io"
if which apt-get; then
OS="debian"
UPDATA="apt-get update"
INSTALL="apt-get install -y docker.io"
else
OS="redhat"
INSTALL="yum install -y docker"
fi
echo "Init docker service."
if ! which docker; then
$UPDATA
$INSTALL
fi
export LC_ALL=en_US.UTF-8
echo "get docker registry cert."
if which wget; then
GET=wget
else
GET=curl
fi
CERTS_PATH=/etc/docker/certs.d/vsc3.vsct.io
if [ ! -d $CERTS_PATH ]; then
mkdir -p $CERTS_PATH
fi
$GET http://10.68.7.156/release/docker/vsct.crt -O /etc/docker/certs.d/vsc3.vsct.io/ca.crt
echo "add dns resolv."
if ! grep "10.68.7.142" /etc/resolv.conf; then
sed -i '1inameserver 10.68.7.142' /etc/resolv.conf
fi
HOST_NAME=`hostname`
DOCKER_EXPORT="-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock"
OVERLAY="--cluster-store=$1 --cluster-advertise=$2"
echo "set vsc3.vsct.io to default registry"
if [ $OS == "debian" ]; then
echo "DOCKER_OPTS='--registry-mirror=https://$REGISTRY_SERVER \
--insecure-registry $REGISTRY_SERVER \
--label label_name=$HOST_NAME \
$DOCKER_EXPORT \
$OVERLAY'" >> /etc/default/docker
cat /etc/docker/certs.d/$REGISTRY_SERVER/ca.crt >> /etc/ssl/certs/ca-certificates.crt
else
sed -i "s,\(OPTIONS='.*\)',\1 --registry-mirror=https://$REGISTRY_SERVER \
--insecure-registry $REGISTRY_SERVER \
--label label_name=$HOST_NAME \
$DOCKER_EXPORT \
$OVERLAY',g" /etc/sysconfig/docker
cat /etc/docker/certs.d/$REGISTRY_SERVER/ca.crt >> /etc/pki/tls/certs/ca-bundle.crt
fi
echo "Start docker daemon..."
if which systemctl; then
systemctl enable docker
systemctl start docker
else
chkconfig docker on
service docker start
fi