【500强 Kubernetes 课程】第3章 运行docker容器

一 - 三 ,docker基础操作见 第2章7节

四、docker部署web网站

1、安装 nginx (适合场景:学习 - 略)

2、docker 安装 nginx

Stage 1 :docker hub 上 搜索 nginx 镜像

Stage 2:拉取官方镜像

Stage 3:创建Nginx 挂载目录

 Stage 4:创建容器 nginx

Stage 5:将所需文件在容器中复制出来

Stage 6:停止容器,并删除

Stage 7:启动容器(挂载)

Stage 8:测试访问

3、docker-compose 安装 nginx (推荐)

Stage 1:创建如下目录结构

Stage 2:配置文件 - nginx.conf

Stage 3:docker-compose.yaml

Stage 4:运行 docker-compose up -d 安装


一 - 三 ,docker基础操作见 第2章7节

四、docker部署web网站

1、安装 nginx (适合场景:学习 - 略

        docker用centos镜像创建容器,然后在容器中安装nginx

2、docker 安装 nginx

Stage 1 :docker hub 上 搜索 nginx 镜像

docker search nginx

Stage 2:拉取官方镜像

docker pull nginx

Stage 3:创建Nginx 挂载目录

        Nginx需要频繁的修改,所以将需要的文件挂载出来最合适

// 先创建nginx目录(以下是示例路径)
[root@192 ~]# mkdir nginx
[root@192 ~]# cd nginx/

// 创建配置文件挂载
[root@192 nginx]# mkdir conf

// 创建静态文件挂载
[root@192 nginx]# mkdir html

// 创建日志文件挂载
[root@192 nginx]# mkdir log

// 列出目录
[root@192 nginx]# ls
conf  html  log

 Stage 4:创建容器 nginx

// 列出镜像
[root@192 nginx]# docker images

// 启动容器 注意 -d 镜像名称:版本
[root@192 nginx]# docker run -d docker.io/nginx:1.25

Stage 5:将所需文件在容器中复制出来

        因为挂载时,如果宿主机挂载目录为空,则可能会将容器中挂载的目录给覆盖

//将容器nginx.conf文件复制到宿主机
[root@192 nginx]# docker cp 容器id:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf

//将容器conf.d文件夹复制到宿主机
[root@192 nginx]# docker cp 容器id:/etc/nginx/conf.d /root/nginx/conf/conf.d

//将容器静态文件夹html复制到宿主机
[root@192 html]# docker cp 容器id:/usr/share/nginx/html/ /root/nginx

Stage 6:停止容器,并删除

// 停止容器,ce869a为容器id
[root@192 html]# docker stop 容器id/容器名

//删除容器
[root@192 html]# docker rm 容器id/容器名

Stage 7:启动容器(挂载)

docker run -d -p 80:80 --name nginx --privileged --restart always -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.con -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/log:/var/log/nginx docker.io/nginx:1.25
 

-d:后台运行
-p:将主机端口80和容器端口80绑定,
–name:容器命名
–privileged:容器获得对主机上设备的直接访问权限
–restart always:设置开机自动重启
-v:挂载目录,格式 主机目录 :容器目录

Stage 8:测试访问

3、docker-compose 安装 nginx (推荐

Stage 1:创建如下目录结构

Stage 2:配置文件 - nginx.conf

user root;
worker_processes auto;
pid /run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

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

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	include /etc/nginx/conf.d/*.conf;

	server {
		listen       8080;
		server_name  0.0.0.0;

		location / {
			root   html/backstage/;
			try_files $uri /index.html;
			index  index.html index.htm;
		}
	}
}

 

Stage 3:docker-compose.yaml

version: '3.1'

services:
  nginx:
    restart: always
    container_name: nginx
    image: nginx:1.17.6
    ports:
      - 8082:8080
      - 8000:8000
      - 8081:8081
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/nginx-log:/var/log/nginx
      - ./nginx/html:/etc/nginx/html
    deploy:
      resources:
        limits:
          memory: 500M
        reservations:
          memory: 200M

 

Stage 4:运行 docker-compose up -d 安装

# 进入目录下
cd /mnt/docker/nginx

# docker-compose 安装nginx
docker-compose up -d 

posted @ 2023-11-16 10:19  随风落木  阅读(2)  评论(0编辑  收藏  举报  来源