欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > docker对外发布服务,docker compose使用

docker对外发布服务,docker compose使用

2025/2/21 10:22:18 来源:https://blog.csdn.net/qq_50655286/article/details/144955362  浏览:    关键词:docker对外发布服务,docker compose使用
一.对外发布服务1.端口绑定,对外发布服务docker run -itd -p 宿主机端口:容器端口 镜像:标签2.容器存储卷,目录映射docker run -itd -v 宿主机对象:容器内对象 镜像:标签3.给容器修改配置文件(1)把容器的配置文件拷贝出来docker cp web:/usr/local/nginx/conf ./conf(2)编辑配置文件,添加 php 解析配置[root@docker ~]# vim conf/nginx.conflocation ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;include        fastcgi.conf;}(3)使用卷映射配置文件,重建 nginx 容器docker run -itd --rm --name web -p 80:80 \-v /root/conf:/usr/local/nginx/conf \-v /var/webroot:/usr/local/nginx/html myos:nginx(4)访问验证curl http://192.168.88.31/info.php4.容器共享网卡+php映射存储卷,解决nginx和php的资源访问docker run -itd --rm --name web -p 80:80 \-v /root/conf:/usr/local/nginx/conf \-v /var/webroot:/usr/local/nginx/html myos:nginx   	#启动nginx容器docker run -itd --rm --name php --network=container:web \-v /var/webroot:/usr/local/nginx/html myos:php-fpm   #启动php容器流程:nginx收到php请求,通过共享网卡,将请求转发给php,但是php里面没有info.php的页面,通过-v /var/webroot:/usr/local/nginx/html卷映射,把界面映射给php容器.二.服务编排与治理(docker compose:容器的批处理管理工具)1.项目文件[root@docker ~]# vim docker-compose.yaml //创建项目文件name: myweb   #项目名称version: "3"  #版本services:	 #服务websvc:	 #服务名container_name: nginx  #容器名image: myos:nginx      #镜像2.compose项目文件编写的语法container_name //指定容器名称image		//指定为镜像名称或镜像 IDrestart	//容器保护策略[always、no、on-failure:状态码]name: mywebversion: "3"services:websvc:container_name: nginximage: myos:nginxrestart: alwaysvolumes	//数据卷,支持模式 [volume、bind、tmpfs、npipe]	volumes:- type: bindsource: /root/conf/nignx.conftarget: /usr/local/ningx/conf/nginx.confports		//暴露端口信息ports:- 80:80networks	//配置容器连接的网络network_mode	//设置网络模式network_mode: "service:服务名称"depends_on	//服务依赖关系services_[start:容器正常启动、healthy:自定义检测脚本执行成功、completed_successfully:容器正常关闭]websvc(服务):condition: service_startenvironment	//设置环境变量添加设置镜像的时候,没有设置的环境变量environment:- "TZ=Asia/Shanghai"command	//覆盖容器启动后默认执行的命令,嵌入脚本command:- sh- -c    #sh -c $"{a}":-c选项告诉shell从接下来的字符串参数中读取命令来执行- |for i in {1..9}dosleep 1echo "${HOSTNAME} && $${HOSTNAME}" #$真机的变量,$$容器内的变量done3.项目管理命令docker compose -f yaml文件 -p 项目名称  指令指令:	up	//创建项目并启动容器docker compose yaml文件 up -dls	//列出可以管理的项目docker compose lsimages	//列出项目使用的镜像docker compose -p myweb imagesps	//显示项目中容器的状态docker compose -p myweb pslogs	//查看项目中容器的日志docker compose -p myweb logsstart/stop/restart	//启动项目/停止项目/重启项目docker compose -p myweb startdown	//删除项目容器及网络docker compose -p myweb downexec //进入某个服务的容器docker compose exec 服务名 /bin/bash

一.对外发布服务
    1.端口绑定,对外发布服务
        docker run -itd -p 宿主机端口:容器端口 镜像:标签
    
    
    2.容器存储卷,目录映射
        docker run -itd -v 宿主机对象:容器内对象 镜像:标签
    
    
    3.给容器修改配置文件
    
        (1)把容器的配置文件拷贝出来
             docker cp web:/usr/local/nginx/conf ./conf
    
        (2)编辑配置文件,添加 php 解析配置
            [root@docker ~]# vim conf/nginx.conf
                location ~ \.php$ {
                    root           html;
                    fastcgi_pass   127.0.0.1:9000;
                    fastcgi_index  index.php;
                    include        fastcgi.conf;
                }
    
        (3)使用卷映射配置文件,重建 nginx 容器
            docker run -itd --rm --name web -p 80:80 \
                      -v /root/conf:/usr/local/nginx/conf \
                      -v /var/webroot:/usr/local/nginx/html myos:nginx
    
        (4)访问验证
            curl http://192.168.88.31/info.php
    
    4.容器共享网卡+php映射存储卷,解决nginx和php的资源访问
        
        docker run -itd --rm --name web -p 80:80 \
                 -v /root/conf:/usr/local/nginx/conf \
                 -v /var/webroot:/usr/local/nginx/html myos:nginx       #启动nginx容器
    
        docker run -itd --rm --name php --network=container:web \
                  -v /var/webroot:/usr/local/nginx/html myos:php-fpm   #启动php容器
        流程:nginx收到php请求,通过共享网卡,将请求转发给php,但是php里面没有info.php的页面,通过-v /var/webroot:/usr/local/nginx/html卷映射,把界面映射给php容器.


二.服务编排与治理(docker compose:容器的批处理管理工具)

    1.项目文件
        [root@docker ~]# vim docker-compose.yaml //创建项目文件
        name: myweb   #项目名称
        version: "3"  #版本
        services:     #服务
          websvc:     #服务名
            container_name: nginx  #容器名
            image: myos:nginx      #镜像

    2.compose项目文件编写的语法
        container_name //指定容器名称
        image        //指定为镜像名称或镜像 ID
        restart    //容器保护策略[always、no、on-failure:状态码]
            name: myweb
            version: "3"
            services:
              websvc:
                container_name: nginx
                image: myos:nginx
                restart: always

        volumes    //数据卷,支持模式 [volume、bind、tmpfs、npipe]    
            volumes:
                    - type: bind
                      source: /root/conf/nignx.conf
                      target: /usr/local/ningx/conf/nginx.conf

        ports        //暴露端口信息
            ports:
                     - 80:80

        networks    //配置容器连接的网络
        network_mode    //设置网络模式
            network_mode: "service:服务名称"

        depends_on    //服务依赖关系services_[start:容器正常启动、healthy:自定义检测脚本执行成功、completed_successfully:容器正常关闭]
            websvc(服务):
                   condition: service_start

        environment    //设置环境变量
            添加设置镜像的时候,没有设置的环境变量
             environment:
                      - "TZ=Asia/Shanghai"

        command    //覆盖容器启动后默认执行的命令,嵌入脚本
            command:
                  - sh
                  - -c    #sh -c $"{a}":-c选项告诉shell从接下来的字符串参数中读取命令来执行
                  - |
                    for i in {1..9}
                    do
                        sleep 1
                        echo "${HOSTNAME} && $${HOSTNAME}" #$真机的变量,$$容器内的变量
                    done
            

    3.项目管理命令
        docker compose -f yaml文件 -p 项目名称  指令
           指令:    
            up    //创建项目并启动容器
                docker compose yaml文件 up -d

            ls    //列出可以管理的项目
                docker compose ls

            images    //列出项目使用的镜像
                docker compose -p myweb images

            ps    //显示项目中容器的状态
                docker compose -p myweb ps

            logs    //查看项目中容器的日志
                docker compose -p myweb logs

            start/stop/restart    //启动项目/停止项目/重启项目
                docker compose -p myweb start

            down    //删除项目容器及网络
                docker compose -p myweb down

            exec //进入某个服务的容器
                docker compose exec 服务名 /bin/bash

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词