mirror of
https://github.com/yeasy/docker_practice.git
synced 2025-08-13 18:12:27 +00:00
rename images directory to _images
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
##多台物理主机之间的容器互联(暴露容器到真实网络中)
|
||||
docker 默认的桥接网卡是docker0。它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做veth*** 而docker只是把所有这些网卡桥接在一起,如下:
|
||||
```
|
||||
[root@opnvz ~]# brctl show
|
||||
[root@opnvz ~]# brctl show
|
||||
bridge name bridge id STP enabled interfaces
|
||||
docker0 8000.56847afe9799 no veth0889
|
||||
veth3c7b
|
||||
@@ -10,17 +10,17 @@ docker0 8000.56847afe9799 no veth0889
|
||||
在容器中看到的地址一般是像下面这样的地址:
|
||||
```
|
||||
root@ac6474aeb31d:~# ip a
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 ::1/128 scope host
|
||||
inet6 ::1/128 scope host
|
||||
valid_lft forever preferred_lft forever
|
||||
11: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
|
||||
link/ether 4a:7d:68:da:09:cf brd ff:ff:ff:ff:ff:ff
|
||||
inet 172.17.0.3/16 scope global eth0
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 fe80::487d:68ff:feda:9cf/64 scope link
|
||||
inet6 fe80::487d:68ff:feda:9cf/64 scope link
|
||||
valid_lft forever preferred_lft forever
|
||||
```
|
||||
这样就可以把这个网络看成是一个私有的网络,通过nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即-p参数(更多原理参见本文第六小节)
|
||||
@@ -28,7 +28,7 @@ root@ac6474aeb31d:~# ip a
|
||||
|
||||
###拓扑图
|
||||
主机A和主机B的网卡一都连着物理交换机的同一个vlan 101,这样网桥一和网桥三就相当于在同一个物理网络中了,而容器一、容器三、容器四也在同一物理网络中了,他们之间可以相互通信,而且可以跟同一vlan中的其他物理机器互联。
|
||||

|
||||

|
||||
|
||||
###ubuntu示例
|
||||
下面以ubuntu为例创建多个主机的容器联网:
|
||||
@@ -68,10 +68,10 @@ DOCKER_OPTS="-b=br0"
|
||||
```
|
||||
root@ubuntudocker:~# docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
58b043aa05eb desk_hz:v1 "/startup.sh" 5 days ago Up 2 seconds 5900/tcp, 6080/tcp, 22/tcp yanlx
|
||||
58b043aa05eb desk_hz:v1 "/startup.sh" 5 days ago Up 2 seconds 5900/tcp, 6080/tcp, 22/tcp yanlx
|
||||
root@ubuntudocker:~# brctl show
|
||||
bridge name bridge id STP enabled interfaces
|
||||
br0 8000.7e6e617c8d53 no em1
|
||||
vethe6e5
|
||||
```
|
||||
这样就直接把容器暴露到你的物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。
|
||||
这样就直接把容器暴露到你的物理网络上了,多台物理主机的容器也可以相互联网了。需要注意的是,这样就需要自己来保证容器的网络安全了。
|
||||
|
@@ -2,7 +2,7 @@
|
||||
docker对于中小企业来说,搭建paas没有那个精力,也没那个必要,用做个人的sandbox用处又小了点,个人认为作为中小企业可以用docker来标准化开发、测试、生产环境。
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
docker占用资源小,在一台E5 128G内存的服务器服务器上部署100个容器都绰绰有余,可以单独抽一个容器或则直接在宿主物理主机上部署samba,利用samba的home分享方案将每个用户的home目录映射到开发中心和测试部门的windows机器上。可以针对项目组,由架构师搭建好一个标准的容器环境供项目组和测试部门使用,每个开发工程师可以拥有自己单独的容器,通过docker run -v 将用户的home目录映射到容器中。需要提交测试时,只需要将代码移交给测试部门,然后分配一个容器使用-v 加载测试部门的home目录启动即可。这样,在公司内部的开发、测试基本就统一了,不会出现开发提交的代码,测试 部门部署不了的问题。
|
||||
|
@@ -25,12 +25,12 @@ ubuntu 14.04 05ac7c0b9383 17 seconds ago
|
||||
###创建私有仓库
|
||||
官方指南称最简单的办法是 docker run -p 5000:5000 registry,如果被墙了,也无法下载该images。感谢CSDN,我有一个1M的腾讯云服务器,上面搭建了一个私有仓库大家可以使用
|
||||
docker pull 203.195.193.251:5000/registry
|
||||
到我的服务器下载 速度虽然慢点,但有保证!
|
||||
到我的服务器下载 速度虽然慢点,但有保证!
|
||||
另外的方法是使用刚才的创建的ubuntu来创建,官方有个docker仓库的源码地址 https://github.com/dotcloud/docker-registry 下载私有仓库的源码,可以根据上面的docker file来创建。
|
||||
|
||||
也可以参考:
|
||||
http://www.vpsee.com/2013/11/build-your-own-docker-private-regsitry-service/
|
||||
|
||||
|
||||
###在私有仓库上传、下载、搜索images
|
||||
创建好自己的私有仓库之后,可以使用docker tag 一个镜像,然后push,然后在别的机器上pull下来就好了。这样我们的局域网私有docker仓库就搭建好了。
|
||||
步骤如下:
|
||||
@@ -70,7 +70,7 @@ apt-get install curl
|
||||
```
|
||||
root ~ # apt-get install curl
|
||||
Reading package lists... Done
|
||||
Building dependency tree
|
||||
Building dependency tree
|
||||
Reading state information... Done
|
||||
The following NEW packages will be installed:
|
||||
curl
|
||||
@@ -93,15 +93,15 @@ root ~ # curl http://192.168.7.26:5000/v1/search
|
||||
```
|
||||
[root@opnvz ~]# docker pull 192.168.7.26:5000/test
|
||||
Pulling repository 192.168.7.26:5000/test
|
||||
ba5877dc9bec: Download complete
|
||||
511136ea3c5a: Download complete
|
||||
9bad880da3d2: Download complete
|
||||
25f11f5fb0cb: Download complete
|
||||
ebc34468f71d: Download complete
|
||||
2318d26665ef: Download complete
|
||||
ba5877dc9bec: Download complete
|
||||
511136ea3c5a: Download complete
|
||||
9bad880da3d2: Download complete
|
||||
25f11f5fb0cb: Download complete
|
||||
ebc34468f71d: Download complete
|
||||
2318d26665ef: Download complete
|
||||
[root@opnvz ~]# docker images
|
||||
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
|
||||
192.168.7.26:5000/test latest ba5877dc9bec 6 weeks ago 192.7 MB
|
||||
```
|
||||
|
||||
这样我们就可以在新的机器上使用这个images了!
|
||||
这样我们就可以在新的机器上使用这个images了!
|
||||
|
Reference in New Issue
Block a user