【Docker】Docker安装
docker打包镜像
- Dockerfile构建镜像
- 编写Dockerfile脚本
- 构建镜像前的准备
- 执行Dockerfile脚本 构建镜像
- 镜像导入
- 配置nginx.conf文件
- Docker操作
- 查询index.html的路径
- 修改web1下ProjectConfig-72e0c4f7dd.json配置文件
- 修改nginx配置文件nginx.conf
Dockerfile构建镜像
编写Dockerfile脚本
# 基于 nginx:latest 镜像而构建
FROM nginx:latest
COPY ./web1/ /var/app/web1/
COPY ./web2/ /var/app/web2/
COPY ./assets/ /var/app/assets/
COPY ./default.conf /etc/nginx/conf.d/default.conf
COPY ./nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
# 添加daemon off;配置可以让nginx在前台启动
# RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD [ "nginx", "-g", "daemon off;" ]
构建镜像前的准备
根据上方的Dockerfile脚本在E:**\DockerImage文件夹下准备好所需内容
web1、web2、assets代表三个web应用
default.conf、nginx.conf代表nginx配置文件
执行Dockerfile脚本 构建镜像
1、Win + R 打开运行框 输入cmd 打开命令窗口
2、输入E:进入E盘符 输入 cd E:**\DockerImage 进入
// 打包镜像
docker build -t service:1.0 .
// 镜像导出
docker image save service:1.0 -o E:\**\DockerImage\service.taz
镜像导入
// 镜像导入
docker image load -i E:\**\DockerImage\service.taz
配置nginx.conf文件
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /var/app/web1;
index index.html index.htm;
}
location /web2 {
root /var/app;
index index.html index.htm;
}
location /assets {
root /var/app/;
index index.html index.htm;
}
location /app {
proxy_pass http://xx.x.xx.xx:xxxx/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
访问路径 xxxx为端口
http://location:xxxx/
http://location:xxxx/web2/
http://location:xxxx/assets/
http://location:xxxx/app/ 代理
Docker操作
查询index.html的路径
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 index.html 的路径
find / -name index.html
修改web1下ProjectConfig-72e0c4f7dd.json配置文件
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "Project*.json" 的路径
find / -name "Project*.json"
// 输出内容
/var/app/web1/ProjectConfig-72e0c4f7dd.json
/var/app/web2/ProjectConfig-a877352052.json
// 退出容器
exit
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/var/app/web1/ProjectConfig-72e0c4f7dd.json ./
// 将修改后的配置文件拷贝容器中web1文件夹下
docker cp ./ProjectConfig-72e0c4f7dd.json 容器ID:/var/app/web1/
// 重启容器
docker restart 容器ID
修改nginx配置文件nginx.conf
// 查看容器
docker ps
// 进入容器
docker exec -it 容器ID bash
// 查询下容器中 "nginx.conf" 的路径
find / -name "nginx.conf"
// 输出内容
/etc/nginx/nginx.conf
// 退出容器
exit
// 将配置文件拷贝到当前文件夹
docker cp 容器ID:/etc/nginx/nginx.conf ./
// 将修改后的配置文件拷贝容器/etc/nginx/文件夹下
docker cp ./nginx.conf 容器ID:/etc/nginx/
// 重启容器
docker restart 容器ID