酒是穿肠毒药,色是刮骨钢刀,财是惹祸根苗,气是无烟火炮。
无酒不成宴席,无色人类灭绝,无财寸步难行,无气反被人欺。
方式一:
1、打包成镜像
上传静态文件到nginx指定目录
[root@localhost browser.odc]# pwd
/mnt/data/odc/browser.odc
[root@localhost browser.odc]# ll
total 24
-rw-r--r--. 1 root root 61 Nov 4 05:52 Dockerfile
-rw-r--r--. 1 root root 12862 Nov 6 22:07 favicon.ico
-rw-r--r--. 1 root root 1204 Nov 6 22:07 index.html
drwxr-xr-x. 5 root root 38 Nov 4 04:23 static
[root@localhost browser.odc]#
编写dockerfile文件到当前目录,dockerfile内容如下:
[root@localhost browser.odc]# vim Dockerfile
FROM nginx:1.22.1
ADD . /usr/share/nginx/html
EXPOSE 80
[root@localhost browser.odc]#
①打包是把使用的的nginx基础镜像是:nginx:1.22.1
②把当前目录的所有静态文件打包到镜像内 /usr/share/nginx/html 下
③打包好后的镜像对外开放80端口
执行命令进行打包image镜像
docker build -t nginx-demo .
查看images
![](https://img.haomeiwen.com/i13118451/a01fe31748ef9d50.png)
2、启动docker镜像
编写docker-compose文件
version: "3"
services:
nginx:
image: "nginx-demo:latest"
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
restart: always
启动命令:
docker-compose -f nginx-compose.yml up -d
nginx配置文件如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
#跟 Dockerfile文件中静态页面路径一致
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
"nginx.conf" [dos] 52L, 1033C
方式二:
通过外部复制和内部更新配置的 方式打包镜像和发布
首先用nginx镜像,启动一个nginx
docker run -p 8001:80 imageid
进入容器内
docker exec -it 9bd138713777/bin/bash
需要在容器中修改配置文件,我们需要下载一个 vim 命令包
apt-get update
apt-get install vim -y
找到nginx默认的配置文件路径
vim /etc/nginx/config.d/default.conf
修改好了后保存文件
查看默认数据文件夹html的文件,如果和复制的有重复,需要删除,删除通过rm -rf 文件或者文件夹,可以直接删除
cd /usr/share/nginx/html/
exit,退出容器
在容器外部,通过命令将当前文件夹(.)的所有数据,复制到容器ID(e4b445366beb)的指定目录中(/usr/share/nginx/html)
docker cp . 9bd138713777://usr/share/nginx/html
复制后可以直接通过浏览器或者在本地通过curl http://ip:port 查看效果
将容器进行打包
容器ID(9bd138713777); 新镜像名称(nginx.image)
docker commit 容器ID 新镜像名称
镜像推送到阿里云仓库
#给镜像打标签
docker tag 9bd138713777 registry.cn-beijing.aliyuncs.com/opendatachain/nginx-demo:latest
#推送
docker push registry.cn-beijing.aliyuncs.com/opendatachain/nginx-demo:latest
拓展:
通过命令将镜像保存到本地文件夹
docker save -a ‘lixiaoer’ -m ‘description’ -o my_nginx.tar nginx.image:latest
镜像到其他服务上如何上传呢(本地文件加载成镜像)? 命令:
docker load -i nginx.image
网友评论