Docker--构建一个web应用程序和容器连接操作

五、使用docker构建一个web 应用程序

  1. 运行一个 web 应用

    1. 载入镜像:docker pull training/webapp

    2. 创建一个容器:docker run -d -P training/webapp python app.py 

      1. -d:让容器在后台运行。

      2. -P:将容器内部使用的网络端口随机映射到我们使用的主机上。

  2. 查看 web 应用和容器

    1. -P 多了一个PORTS口,可查看主机端口

    2. 可通过浏览器(主机IP:主机端口)访问 WEB 应用

    3. 我们也可以通过 -p 参数来设置不一样的端口(主机端口设置为4000):docker run -d -p 4000:5000 training/webapp python app.py

  3. 查询网络端口

    1. 查看容器端口映射到宿主机的端口号:docker port (CONTAINER ID)

  4. 查看 WEB 应用程序日志

    1. docker logs -f (CONTAINER ID)

  5. 检查 WEB 应用程序容器的进程

    1. docker top (CONTAINER ID)

  6. 检查 WEB 应用程序

    1. docker inspect (CONTAINER ID)

  7. 停止 WEB 应用程序

    1. docker stop (CONTAINER ID)

  8. 重启 WEB 应用容器

    1. docker start (CONTAINER ID)

    2. docker restart (CONTAINER ID)

  9. 移除 WEB 应用容器

    1. 删除容器时,容器必须是停止状态,否则会报错:docker rm (CONTAINER ID)

    2. 也可通过加-f,强制删除正在运行的容器:docker rm -f (CONTAINER ID)

六、容器连接

  1. 网络端口映射,abc可通过浏览器访问容器,此外在docker中可通过ifconfig查看ip,然后通过ip访问其他docker
    1. docker run -d -P training/webapp python app.py
      1. -P 是容器内部端口随机映射到主机的端口
    2. docker run -d -p 4000:5000 traning/webapp python app.py
      1. -p 是容器内部端口绑定到指定的主机端口
    3. 可以指定容器绑定的网络地址,比如绑定127.0.0.1
      1. docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
    4. 修改docker的传输层协议,tcp→udp
      1.  docker run -d -p 127.0.0.1:5002:5000/udp training/webapp python app.py
  2. Docker 容器互联
    1. 新建 Docker 网络:docker network create -d bridge (网络名称)
    2. 运行一个容器并连接到新建的网络:docker run -itd --name test1 --network test-net debian /bin/bash  (注意:用debian镜像,ubuntu镜像无法安装ping和vim)
    3. 创建第二个容器并连接到新建的网络:docker run -itd --name test2 --network test-net debian /bin/bash
    4. 在两个容器中可以相互 ping (容器名称)
  3. 配置DNS
    1. 给全部容器配置一个DNS
      1. 修改宿主机的 /etc/docker/daemon.json 文件
        1. 例
          {
            "dns" : [
              "114.114.114.114",
              "8.8.8.8"
            ]
          }
      2. 重启重启后生效
    2. 输出容器的DNS信息:docker run -it  --rm (镜像名称) cat /etc/resolv.conf
    3. 手动在指定的容器设置DNS:docker run -it  --rm -h (容器的主机名)  --dns=114.114.114.114  --dns-search=test.com debian
      1.  --rm: 容器退出时自动清理容器内部的文件系统
      2. -h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。

      3. --dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。

      4. --dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com

猜你喜欢

转载自blog.csdn.net/xch622114/article/details/130854861