about docker Images
docker 镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器
docker容器采用分层机制
最底层为bootfs:用于系统引导的文件系统,包括bootloader和kernel, 容器启动完成后会被卸载以节约内存资源
然后为rootfs位于bootfs之上,表现为docker容器的根文件系统;rootfs由内核挂载为只读模式而后通过“联合挂载技术”挂载一个可写层;
docker Image Layer
位于下层的镜像称为父镜像,最底层的称为基础镜像
最上层的“为可读写”层,其下的均为“只读”层
docker网络分为三类
bridge:net桥接式网络 docker0
host 直连接主机的网络
null 封闭式网络
none网络如下 只有指向自己的网络
docker run --name t1 -it --network none --rm busybox:latest
bridge 网络属于net网络,docker会分配一个子网络
docker run --name t1 -it --network bridge --rm busybox:latest
在这里插入图片描述
host网络属于直连物理机的网络,会自带docker 0的网络
docker run --name t1 -it --network host --rm busybox:latest
docker run 命令的使用
–hostname 选项为容器指定的主机名例如
docker run --name t1 -it --network host --hostname zhangsan --rm busybox:latest
–dns dns_server_ip 选项能够为容器指定所使用的dns服务器地址,例如
–add-host hostnam:ip
docker run --rm --dns 172.16.0.1 --add-host “docker.com:172.16.0.100” busybox:latest
docker run --name myweb -it --rm -p 8080:80 nginx:latest
-p 80:80 第一个8080指宿主机的端口,第二个80指的是容器的端口
查找容器的ip
curl 172.17.0.2,直接访问容器的地址正常
curl -I 192.168.106.101:8080 ,访问宿主机的8080端口也是正常。
手动创建docker网络
docker network create -d bridge --subnet “172.26.0.0/16” mybr0
[root@swarm01 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
326947113b79 bridge bridge local
8aacc7443031 host host local
0389363d6a20 mybr0 bridge local
a170f27812bf mynetwork bridge local
03e370c90636 none null local