美文网首页k8s容器
Docker安装与发布容器服务

Docker安装与发布容器服务

作者: 一个小运维 | 来源:发表于2021-06-30 17:46 被阅读0次

    docker安装详细介绍:
    https://www.jianshu.com/p/52d681f36415

    对外发布服务

    宿主机需要绑定一个公网IP
    docker run -itd -p 宿主机端口:容器端口 镜像名称:标签

    # 把 docker-0001 变成 apache 服务
    [root@docker-0001 ~]# docker run -itd -p 80:80 myos:httpd
    
    # 把 docker-0001 变成 nginx 服务,首先必须停止 apache
    [root@docker-0001 ~]# docker stop $(docker ps -q)
    [root@docker-0001 ~]# docker run -itd -p 80:80 myos:nginx
    

    验证方式: 通过浏览器访问即可

    容器共享卷

    docker run -itd -v 宿主机对象:容器内对象 镜像名称:标签
    使用共享卷动态修改容器内配置文件

    [root@docker-0001 ~]# mkdir /var/webconf
    [root@docker-0001 ~]# cp /usr/local/nginx/conf/nginx.conf /var/webconf/
    [root@docker-0001 ~]# vim /var/webconf/nginx.conf
            location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include        fastcgi.conf;
            }
    [root@docker-0001 ~]# docker run -itd -p 80:80 --name nginx  -v /var/webconf/nginx.conf:/usr/local/nginx/conf/nginx.conf myos:nginx
    

    验证方式: 使用 exec 进入容器查看

    [root@docker-0001 ~]# docker exec -it nginx /bin/bash
    [root@e440b53a860a html]# cat /usr/local/nginx/conf/nginx.conf
    [root@e440b53a860a html]# # 查看 php 相关配置是否被映射到容器内
    
    容器间网络通信

    nginx利用容器共享网络特性调动后端php-fpm(container模式,共享其他容器的网络命令空间)
    php-fpm监听nginx容器的网络端口
    使用宿主机的共享卷使 nginx和php-fpm共享目录
    实验架构图例


    实验架构图例

    配置共享网络和创建共享存储

    [root@docker-0001 ~]# mkdir -p /var/{webroot,webconf}
    [root@docker-0001 ~]# cp info.php info.html /var/webroot/
    [root@docker-0001 ~]# cp /usr/local/nginx/conf/nginx.conf  /var/webconf/
    [root@docker-0001 ~]# vim /var/webconf/nginx.conf
            location ~ \.php$ {
                root           html;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include        fastcgi.conf;
            }
    # 启动前端 nginx 服务,并映射共享目录和配置文件
    [root@docker-0001 ~]# docker run -itd --name nginx -p 80:80 \
    -v /var/webconf/nginx.conf:/usr/local/nginx/conf/nginx.conf  \
    -v /var/webroot:/usr/local/nginx/html myos:nginx
    # 启动后端 php 服务,并映射共享目录
    [root@docker-0001 ~]# docker run -itd --network=container:nginx \
    -v /var/webroot:/usr/local/nginx/html myos:php-fpm
    

    验证服务

    [root@docker-0001 ~]# curl http://docker-0001/info.html
    <html>
      <marquee  behavior="alternate">
          <font size="12px" color=#00ff00>Hello World</font>
      </marquee>
    </html>
    [root@docker-0001 ~]# curl http://docker-0001/info.php
    <pre>
    Array
    (
        [REMOTE_ADDR] => 172.17.0.1
        [REQUEST_METHOD] => GET
        [HTTP_USER_AGENT] => curl/7.29.0
        [REQUEST_URI] => /info.php
    )
    php_host:   f705f89b45f9
    1229
    

    相关文章

      网友评论

        本文标题:Docker安装与发布容器服务

        本文链接:https://www.haomeiwen.com/subject/qqsrultx.html