最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • docker的网络设置和数据管理-欧资源网

    docker的网络设置和数据管理-欧资源网插图

    docker会创建一个桥接网卡[docker 0],docker有两种映射方式,一种是随机映射,一种是指定映射 生产场景一般不用随机映射 随机映射的好处是端口由docker分配,不会冲突

    安装nginx指定端口

    docker pull nginx docker run –name nginx-test -p 8080:80 -d nginx –name nginx-test 容器名称 -p 8080:80 指定的端口映射(本机防火墙需要开启) -d nginx 设置容器存在后台一直运行 访问nginx端口 http://localhost:8080

    安装nginx不指定端口

    docker run -d -P nginx docker run –name -d -P nginx 查看运行端口

    root@jenkins:/data/docker# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9185/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      9383/master         
    tcp6       0      0 127.0.0.1:8040          :::*                    LISTEN      73876/java          
    tcp6       0      0 :::8080                 :::*                    LISTEN      123262/docker-proxy 
    tcp6       0      0 :::8050                 :::*                    LISTEN      73876/java          
    tcp6       0      0 :::22                   :::*                    LISTEN      9185/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      9383/master         
    tcp6       0      0 :::1024                 :::*                    LISTEN      123397/docker-proxy 
    tcp6       0      0 :::1025                 :::*                    LISTEN      123487/docker-proxy 
    tcp6       0      0 :::1026                 :::*                    LISTEN      123576/docker-proxy 
    tcp6       0      0 :::1028                 :::*                    LISTEN      123830/docker-proxy 
    

    查看运行防火墙规则

    root@jenkins:/data/docker# iptables -t nat -nvL
    Chain PREROUTING (policy ACCEPT 4 packets, 272 bytes)
     pkts bytes target     prot opt in     out     source               destination         
       17   884 DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        1    52 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL
    
    Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0           
        0     0 MASQUERADE  tcp  --  *      *       172.17.0.2           172.17.0.2           tcp dpt:80
        0     0 MASQUERADE  tcp  --  *      *       172.17.0.3           172.17.0.3           tcp dpt:80
        0     0 MASQUERADE  tcp  --  *      *       172.17.0.4           172.17.0.4           tcp dpt:80
        0     0 MASQUERADE  tcp  --  *      *       172.17.0.5           172.17.0.5           tcp dpt:80
        0     0 MASQUERADE  tcp  --  *      *       172.17.0.6           172.17.0.6           tcp dpt:80
    
    Chain DOCKER (2 references)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0           
        2   104 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 to:172.17.0.2:80
        0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1024 to:172.17.0.3:80
        0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1025 to:172.17.0.4:80
        0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1026 to:172.17.0.5:80
        0     0 DNAT       tcp  --  !docker0 *       0.0.0.0/0            0.0.0.0/0            tcp dpt:1028 to:172.17.0.6:80
    

    查看日志 docker logs [ID/Name]来查看nginx输出日志

    docker 启动映射多端口

    docker run -d -p 443:443 -p 82:80 –name nginxv2 nginx

    docker数据分为两种:

    数据卷:  -v /data
             -v src:dst
    数据卷容器: --volumes-from
    

    可以将数据卷理解为挂载,可以将数据mount到docker镜像中,让我在docker镜像里写数据时,实际写入的是物理主机里面。如果容器多了,不方便管理

    数据卷设置

    example:我们创建一个容器,起名叫nginx-volume-test 挂载到容器中的/data/docker/nginx-volume-test目录下 docker run -d –name nginx-volume-time -v /data/docker/nginx-volume-test nginx 进入容器查看挂载情况

    root@jenkins:/data/docker/nginx-volume-test# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
    c532b25656e1        nginx               "nginx -g 'daemon ..."   15 minutes ago      Up 15 minutes       80/tcp                 nginx-volume-time01
    444c4206bd4f        nginx               "nginx -g 'daemon ..."   16 minutes ago      Up 16 minutes       80/tcp                 nginx-volume-time
    a1d17b854c3c        nginx               "nginx -g 'daemon ..."   33 minutes ago      Up 33 minutes       0.0.0.0:1028->80/tcp   nginx_test_01
    42cb50b2c0be        nginx               "nginx -g 'daemon ..."   34 minutes ago      Up 34 minutes       0.0.0.0:1026->80/tcp   affectionate_lewin
    517785002f20        nginx               "nginx -g 'daemon ..."   34 minutes ago      Up 34 minutes       0.0.0.0:1025->80/tcp   admiring_lamport
    dc50ad70f047        nginx               "nginx -g 'daemon ..."   35 minutes ago      Up 35 minutes       0.0.0.0:1024->80/tcp   infallible_shannon
    0b256496d251        nginx               "nginx -g 'daemon ..."   43 minutes ago      Up 43 minutes       0.0.0.0:8080->80/tcp   nginx1
    root@jenkins:/data/docker/nginx-volume-test# sh /data/docker/docker_in.sh nginx-volume-time
    mesg: ttyname failed: No such device
    root@444c4206bd4f:/# mount |grep /da
    /dev/mapper/centos-root on /data/docker/nginx-volume-test type xfs (rw,relatime,attr2,inode64,noquota)
    

    上面只能看到/data/docker/nginx-volume-test,但是不知道服务器与docker之间的目录

    找出存储目录和docker容器之间的连接

    root@jenkins:/data/docker/nginx-volume-test# docker inspect -f {{.Mounts}} nginx-volume-time
    [{volume 7facc10a0e5a697fd6e03cfbb99c2a0e1ab14c4a7629341f21fdeb0be0ce5b68 /var/lib/docker/volumes/7facc10a0e5a697fd6e03cfbb99c2a0e1ab14c4a7629341f21fdeb0be0ce5b68/_data /data/docker/nginx-volume-test local  true }]
    root@jenkins:/data/docker/nginx-volume-test# cd /var/lib/docker/volumes/7facc10a0e5a697fd6e03cfbb99c2a0e1ab14c4a7629341f21fdeb0be0ce5b68/_data 
    root@jenkins:/var/lib/docker/volumes/7facc10a0e5a697fd6e03cfbb99c2a0e1ab14c4a7629341f21fdeb0be0ce5b68/_data# ls
    1  2  test
    

    指定特定的目录

    docker run -d --name nginx_prod -v /data/docker/nginx_prod/:/data nginx
    提示:-v /data/docker/nginx_prod/ 存储文件的目录
       data   容器中的目录
    

    但是这种方式dockerfile里不支持.因为这种方法不可移植 我们还可以添加参数,使用只读的方式挂载 docker run -d –name nginx_prod -v /data/docker/nginx_prod/:/data:ro nginx

    容器挂载一个.bash_history 挂载完并删除

    docker run –rm -it -v /root/.bash_history:/.bash_history nginx /bin/bash 退出后就会删除

    容器数据之间同步案例

    docker run -d –name nfs -v /root/nfs-data:/data nginx 然后进去容器之后创建,则会有文件同步 docker run –rm -it –volumes-from nfs centos /bin/bash

    数据卷容器

    docker run -it –rm –name volume-test –volumes-from nfs centos /bin/bash –volumes-from 另一个容器的名称 提示:我们如果停掉nfs一样可以访问,数据卷容器还有一个好处是不管这个容器是否运行都会起作用,只要有容器在使用数据卷容器就无法删除

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » docker的网络设置和数据管理-欧资源网

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论