基础环境

docker 环境搭建

ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
docker 安装

sudo apt-get update

sudo apt install docker.io

sudo groupadd docker

docker ps

sudo usermod -aG docker $USER

sudo vim /etc/docker/daemon.json
root@user1-virtual-machine:~# cat /etc/docker/daemon.json

{
"storage-driver":"overlay",
"insecure-registries": ["10.10.208.193:5000"]
}
sudo service docker restart

centos

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

简单安装:
curl -sSL https://get.daocloud.io/docker | sh

其他详细:
1. 安装docker-yum
【centos7】
sudo yum install docker
【centos6】
修改yum源:参考/centos-6-yum源

#
yum install device-mapper-libs
yum upgrade device-mapper-libs yum update--skip-broke
rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6Server/x86_64/epel-release-6-8.noarch.rpm

yum install docker-io

ubuntu:
apt-get update
apt-get install apt-transport-https ca-certificates
wget -qO- https://get.docker.com/ | sh
service docker start
2. 指定私库
修改/etc/docker/daemon.json文件
#vi /etc/docker/daemon.json
{ "insecure-registries": ["10.10.208.193:5000"] }

#这个现网使用出错
#{
# "storage-driver":"overlay",
# "insecure-registries": ["10.10.208.193:5000"]
#}

cent-os-6
/etc/sysconfig/docker
other_args='--insecure-registry 10.10.208.193:5000'
DOCKER_CERT_PATH=/etc/docker
ADD_REGISTRY='--add-registry 10.10.208.193:5000'

# Resolves: rhbz#1176302 (docker issue #407)
DOCKER_NOWARN_KERNEL_VERSION=1
3. 修改存储位置
修改docker.service文件,使用-g参数指定存储位置
vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --graph /data/docker

4.配置生效
#reload配置文件
systemctl daemon-reload
#重启docker
systemctl restart docker
#查看 Docker Root Dir: /var/lib/docker是否改成设定的目录/new-path/docker
docker info
Docker Root Dir: /data/docker

#10.10.208.193
#systemctl daemon-reload
#

docker registry

1.映射

开发环境使用

1
2
3
4
5
6
7
8
9
10
docker run -itd --name registry --restart=always  -p 5000:5000 -v /registry:/var/lib/registry registry:2
docker stop registry
docker rm registry
docker run -itd --name registry --restart=always -p 5000:5000 registry:2

docker stop registry-web
docker rm registry-web
docker run -d -p 15000:8080 --name registry-web --link registry -e REGISTRY_URL=http://registry:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web

docker run -p 8080:8080 -e REG1=http://10.3.4.111:5000/v2/ atcol/docker-registry-ui

2.无映射

本机测试临时使用

1
2
3
docker stop registry
docker rm registry
docker run -d --name registry --restart=always -p 5000:5000 registry:2

基础环境备注

1
2
3
4
5
6
7
8
9
1,在运行容器的时候,给容器加特权:
示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0
2,临时关闭selinux:
示例:su -c "setenforce 0"
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
注意:之后要记得重新开启selinux,命令:su -c "setenforce 1"
3,添加selinux规则,将要挂载的目录添加到白名单:
示例:chcon -Rt svirt_sandbox_file_t /home/docs
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0