docker容器一端口映射、数据管理

╰半橙微兮° 2022-05-13 09:24 377阅读 0赞
  • 一、随机端口映射

    • 1.后台启动nginx
    • 2.网页访问
    • 3.查看日志
  • 二、指定端口映射

    • 1.指定IP与端口映射
    • 2.网页访问
    • 3.映射多个端口
  • 三、数据管理

    • 1.指定容器数据挂载目录

      • 1.1启动容器,指定容器的存储的目录
      • 1.2查看容器数据目录挂载在本地的哪个目录
      • 1.3创建文件
    • 2.指定本地目录作为容器数据挂载目录

      • 2.1启动容器,指定本机目录
      • 2.创建文件测试
    • 3.创建新容器,使用nginx-volulme-test2的数据存储

一、随机端口映射

1.后台启动nginx

  1. [root@docker-server ~]# docker run -d --name nginx -P nginx
  2. 2b748f91df6c00d0689a17b77fba1760f1a431d67576a48de49a5a7d586cfb39
  3. [root@docker-server ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 2b748f91df6c nginx "nginx -g 'daemon of…" 18 seconds ago Up 17 seconds 0.0.0.0:32769->80/tcp nginx
  6. ===》从进程可以看出,本地的端口32769被映射到nginx容器的80端口

2.网页访问

这里写图片描述

3.查看日志

  1. [root@docker-server ~]# docker logs 2b748f91df6c
  2. 10.0.0.1 - - [12/Sep/2018:01:19:46 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"
  3. 2018/09/12 01:19:46 [error] 6#6: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 10.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "10.0.0.5:32769", referrer: "http://10.0.0.5:32769/"
  4. 10.0.0.1 - - [12/Sep/2018:01:19:46 +0000] "GET /favicon.ico HTTP/1.1" 404 571 "http://10.0.0.5:32769/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"

二、指定端口映射

1.指定IP与端口映射

  1. [root@docker-server ~]# docker run -d -p 10.0.0.5:81:80 --name nginx-81 nginx
  2. b5ea9e937ce68f03df45c8b71ed7569736e4b23eb5376c1014b4656074c8d5be
  3. [root@docker-server ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. b5ea9e937ce6 nginx "nginx -g 'daemon of…" 23 seconds ago Up 22 seconds 10.0.0.5:81->80/tcp nginx-81
  6. 2b748f91df6c nginx "nginx -g 'daemon of…" 9 minutes ago Up 9 minutes 0.0.0.0:32769->80/tcp nginx
  7. ===》将10.0.0.5:81映射到nginx-81容器的80端口

2.网页访问

这里写图片描述

3.映射多个端口

  1. [root@docker-server ~]# docker run -d -p 443:443 -p 82:80 --name nginxs nginx
  2. 4f6e820958f0cffda24462e1cbccd52b251764dd7b712495d47a567b8a3fc3f4
  3. [root@docker-server ~]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 4f6e820958f0 nginx "nginx -g 'daemon of…" 11 seconds ago Up 10 seconds 0.0.0.0:443->443/tcp, 0.0.0.0:82->80/tcp nginxs
  6. b5ea9e937ce6 nginx "nginx -g 'daemon of…" 5 minutes ago Up 5 minutes 10.0.0.5:81->80/tcp nginx-81
  7. 2b748f91df6c nginx "nginx -g 'daemon of…" 14 minutes ago Up 14 minutes 0.0.0.0:32769->80/tcp nginx

三、数据管理

  • 默认情况下,在容器内创建的所有文件都存储在可写容器层中。这意味着:
    当该容器不再运行时,数据不会持久存在,如果另一个进程需要,则可能很难从容器中获取数据。
  • 容器的可写层紧密耦合到运行容器的主机。无法轻松地将数据移动到其他位置。 写入容器的可写层需要
  • 存储驱动程序来管理文件系统。存储驱动程序使用Linux内核提供联合文件系统。与使用直接写入主机文件系统的数据卷相比,这种额外的抽象降低了性能。

1.指定容器数据挂载目录

1.1启动容器,指定容器的存储的目录

  1. [root@docker-server ~]# docker run -d --name nginx-volume-test1 -v /data/nginx nginx
  2. 66b56ee796715de421a37fef6e11fe08d00657f214a86928124f53bf15e17690
  3. ====》参数
  4. -v 指定一个主机目录作为挂在卷
  5. [root@docker-server ~]# docker_start nginx-volume-test1
  6. root@66b56ee79671:/# ls -dl data/nginx/
  7. drwxr-xr-x. 2 root root 6 Sep 12 01:51 data/nginx/

1.2查看容器数据目录挂载在本地的哪个目录

  1. [root@docker-server ~]# docker inspect -f { {.Mounts}} nginx-volume-test1 [{volume 21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52 /var/lib/docker/volumes/21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52/_data /data/nginx local true }]

1.3创建文件

  1. [root@docker-server ~]# cd /var/lib/docker/volumes/21e50f1f5feb058e54a9f80e86ae2e8ba9a535f138034223e0ebf7cdd38e5e52/_data/
  2. [root@docker-server _data]# touch test
  3. [root@docker-server _data]# docker_start nginx-volume-test1
  4. root@66b56ee79671:/# ls /data/
  5. nginx
  6. root@66b56ee79671:/# ls /data/nginx/
  7. test

2.指定本地目录作为容器数据挂载目录

2.1启动容器,指定本机目录

  1. [root@docker-server _data]# docker run -d --name nginx-volume-test2 -v /data/docker-volume-nginx/:/data nginx
  2. 176e59c155773ab738763d1ae22c067b52c2714486d9efe9b3b19982e2ad1a28

2.创建文件测试

  1. [root@docker-server _data]# touch /data/docker-volume-nginx/test2
  2. [root@docker-server _data]# docker_start nginx-volume-test2
  3. root@176e59c15577:/# ls /data/
  4. test2

3.创建新容器,使用nginx-volulme-test2的数据存储

  1. [root@docker-server _data]# docker run -d --name nginx-volume-test3 --volumes-from nginx-volume-test2 nginx
  2. 3c7814d9b8d8e83195b6fb16a2cca6d005b4e4fdee83ce2b3f9dcfb17390840f
  3. [root@docker-server _data]# docker_start nginx-volume-test3
  4. root@3c7814d9b8d8:/# ls /data/
  5. test2

发表评论

表情:
评论列表 (有 0 条评论,377人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker——端口映射容器互联

    端口映射实现容器访问 1. 从外部访问容器应用: 在启动容器的时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。 当容器中运行一些网络