docker-compose 部署服务

使用docker-compose部署服务,离线环境下拉取不到镜像的情况,可以在有网络的服务器上拉取镜像,把镜像打成离线包,然后上传到无网络的内网服务器上再使用docker部署。

具体操作参考下面的文章:

把docker镜像打成离线包-CSDN博客文章浏览阅读293次,点赞6次,收藏9次。隔绝外网的情况下使用docker部署服务是拉取不到镜像的,不过还是有解决方案:在有网络的服务器上拉取镜像,把镜像打成离线包,然后上传到无网络的内网服务器上再使用docker部署。离线环境安装docker和docker-compose参考下面这篇文章Linux环境离线安装Docker和docker-compose-CSDN博客Linux环境离线安装Docker和docker-compose.tar。https://blog.csdn.net/Muscleheng/article/details/148717623?fromshare=blogdetail&sharetype=blogdetail&sharerId=148717623&sharerefer=PC&sharesource=Muscleheng&sharefrom=from_link

docker-compose 部署服务,这里以部署Nginx为例:

1. 创建 docker-compose.yml 文件
 

在指定目录中创建一个nginx目录(例:/home/hy/nginx),进入nginx目录,创建docker-compose.yml文件

version: '3.8'
services:
  nginx:
    # 镜像
    image: nginx:1.22-alpine
    
    # 自定义容器名称
    container_name: wz-nginx
    privileged: true
    
    # 重启策略,unless-stopped容器意外退出时自动重启,除非手动停止
    restart: unless-stopped
    
    # 映射宿主机端口到容器端口,如果需要HTTPS,映射443端口
    ports:
      - '80:80'
      - '443:443'
      - '9032:5000'
    environment:
      - TZ=Asia/Shanghai
      
    # 挂载,左边是手动创建的目录,右边是容器内的目录
    volumes:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf     # 挂载自定义Nginx配置
      - ./conf/conf.d:/etc/nginx/conf.d             # 自动加载 conf.d/下的所有.conf文件
      - ./logs:/var/log/nginx                       # 挂载日志目录
      - ./html:/usr/share/nginx/html                # 挂载静态网站文件

2.创建文件中的挂载目录
 

mkdir -p conf/conf.d
mkdir logs
mkdir html

3. 在conf目录中创建 nginx.conf 文件
 

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        # 可添加更多配置,如反向代理、负载均衡等
        # location /api {
        #     proxy_pass http://backend:8080;
        # }
    }


	# 自动加载 conf.d/ 下的所有 .conf 文件
	include /etc/nginx/conf.d/*.conf;

}

4. 准备静态网站文件

以创建 html/index.html(示例):
 




    Nginx with Docker Compose


    

Hello, Nginx!

This is running inside Docker.

5. 启动Nginx服务
 

# docker-compose.yml文件所在目录执行,后台运行
docker-compose up -d

6. 验证Nginx是否运行
 

1、检查容器状态 

docker-compose ps

输出示例:
 

[root@1-E1090Y59379 nginx]# docker-compose ps
NAME       IMAGE               COMMAND                  SERVICE   CREATED          STATUS          PORTS
wz-nginx   nginx:1.22-alpine   "/docker-entrypoint.…"   nginx     41 seconds ago   Up 41 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:9032->5000/tcp, [::]:9032->5000/tcp

 2、服务nginx的静态页面
 

在服务器上curl地址,或者浏览器访问服务器ip和nginx配置的端口

# 服务器上curl地址,或者浏览器访问
curl http://127.0.0.1

输出示例:这就把前面创建的静态文件index.html输出,说明Nginx正常运行。

[root@1-E1090Y59379 nginx]# curl http://127.0.0.1




    Nginx with Docker Compose


    

Hello, Nginx!

This is running inside Docker.

3. docker-compose管理服务常用命令
 

# 查看正在运行的容器
docker-compose ps

# 重启nginx ,命令中 nginx 是 docker-compose.yml 中 services: 下的服务名称。
# 不加服务名称就是重启 docker-compose.yml 文件中的所有容器服务。
docker-compose restart nginx

# 停止
docker-compose stop nginx

# 启动
docker-compose stop start

# 停止并删除容器
docker-compose down

# 重新创建并启动容器服务,修改docker-compose.yml文件后需要执行该命令重新创建并启动。
# 执行该命令之前可以不用执行 docker-compose down。
docker-compose up -d

你可能感兴趣的:(docker,Linux,容器,docker,docker-compose,nginx)