0基础 学习 通过docker实现域名绑定访问网站

docker pull nginx #下载nginx镜像

docker images #查看镜像

docker image ls #查看镜像

docker pull nginx:1.26.0 #下载镜像完整代码 docker pull 镜像名:版本号

docker pull nginx #简洁版下载镜像(最新)

docker rmi +IMAGE id 或者 镜像名:版本号 #删除镜像 id可以只输入前三位数

1.命令行

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

docker ps -a #查看启动过的容器

docker start +CONTAINER id #重启容器

docker stop+ CONTAINER id #终止容器

docker restart+CONTAINER id #重启容器

docker stats+CONTAINER id # 查看容器资源占用情况

docker logs +CONTAINER id #查看容器日志

docker rm+CONTAINER id #删除已停止的容器

docker rm -f +CONTAINER id #强制删除容器

rm 是删除容器 rmi是删除镜像

rz #上传文件

vim dockerfile #编写dockerfile文件


2.快捷键

ctrl+c #控制台中断,容器停止

ctrl+l #清除命令

exit #退出容器,回到主控制界面

ls #查看当前文件

pwd #查看父容器名称

docker exec -it 61y bash #以交付模式进入id为61y的容器控制台里(操作容器,更改文件)

docker restart redis01 #重启镜像redis01

cat index.html #查看index.html文件源码

echo 111 > index.html #修改数据

echo 333 >> index.html #添加代码

cd ~ #cd到root目录

\ # 换行


3.后台启动镜像

docker run -d[后台启动] --name[自定义容器名字] mynginx +IMAGE ID

docker run -d +IMAGE ID


4.端口映射(快捷)

docker run -d --name mynginx -p 8430:5645 nginx # 后台运行 将容器名字改为mynginx 端口映射将内部8430端口映射为外部5645 镜像名为nginx 注:端口不要起冲突,已被占用端口镜像无法启动,反向代理用前者端口号(外部端口)

docker run -d --name mynginx -p 88:80 nginx


5.操作容器内部文件

nginx 默认页 /usr/share/nginx/html

docker exec -it mynginx /bin/bash #进入容器内部

ls #查看文件

cd +/usr/share/nginx/html #进入文件内部

vi index.html #编写index.html文件

echo "<h1>hello,docker</h1>" >index.html #将<h1>hello,docker</h1>注入index.html中

cat index.html # 查看index.html 源码

exit #退出容器,回到主控制界面


6.打包镜像

docker commit -m "update index.html" mynginx mynginx:v1.0 # 提交容器变化mynginx打成一个新的镜像mynginx:v1.0 版本v1.0 --将容器封装成镜像

docker save -o mynginx.tar mynginx:v1.0 #将mynginx:v1.0 导成mynginx.tar包--打包镜像

docker run -d --name app01 -p 80:80 mynginx:v1.0 # 启动镜像mynginx:v1.0,-d后台启动,--name镜像名,-p 端口暴露 主机:容器rmi


7.域名绑定

添加域名:网站→添加站点→输入域名

反向代理:对应域名右边”设置“→左侧“反向代理”→“添加反向代理”

docker ps -aq #打印容器id

docker rm $(docker ps -aq) #删除打印出来id的容器

docker exec -it 61y bash #以交付模式进入id为61y的容器控制台里(操作容器,更改文件)


8存储方式
8.1目录挂载

(初始启动 外面目录是空的,里面也是空的)

-v /app/nghtml/:/usr/share/nginx/html #外部主机位置:内部容器位置

例:

docker run -d -p 88:80 -v /app/nghtml:/usr/share/nginx/html --name app01 nginx

#后台运行镜像(-d) .端口映射88:80(-p).目录挂载外部地址/app/nghtml挂载到内部/usr/share/nginx/html(-v). 容器名app01(--name).使用nginx这个镜像.

8.2卷映射

(初始启动 外面的目录要以内部为准,启动以后里外随意修改[同步])

-v ngconf:/etc/nginx

例:

docker run -d -p 87:80 -v /app/nghtml:/usr/share/nginx/html -v ngconf:/etc/nginx --name app02 nginx

#后台运行镜像(-d) .端口映射87:80(-p).目录挂载外部地址/app/nghtml挂载到内部/usr/share/nginx/html(-v). 卷映射(-v 外部文件ngconf映射到/etc/nginx).容器名app02(--name).使用nginx这个镜像.

/var/lib/docker/volumes/ <volume-name> #全映射存储位置.<volume-name>卷名.

docker volume ls #查看卷

docker volume create 123 #创建一个卷 名字是123

docker volume insp

### 绑定域名Docker 部署的应用程序 为了使应用程序可以通过自定义域名访问,需要完成几个关键步骤。这些步骤涉及DNS配置、`/etc/hosts` 文件编辑以及 Nginx 反向代理设置。 #### 修改 `/etc/hosts` 对于本地环境下的测试目的,可以在服务器上的 `/etc/hosts` 文件中添加一条记录来映射 IP 地址与域名: ``` 172.23.0.1 nacos.test.com ``` 这条命令会将 `nacos.test.com` 解析为指定的IP地址[^2]。 #### DNS 配置 当准备上线时,则需通过注册商管理面板配置真实的DNS A记录或CNAME指向实际托管应用服务的公网IP地址。这一步骤确保互联网中的设备能够找到并连接到运行着Docker容器的服务器。 #### 设置 Nginx 作为反向代理 为了让外部请求能被正确路由到内部的 Docker 容器,通常会在宿主机上安装 Nginx 并将其配置成反向代理服务器。针对每个想要绑定的不同域名,在 `/home/nginx/conf.d` 目录下创建独立的 `.conf` 文件用于描述特定站点的行为模式。例如: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://localhost:PORT_NUMBER/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 在这个例子中,`example.com` 是要绑定的目标域名;而 `http://localhost:PORT_NUMBER/` 则是指向由 Docker 启动的应用实例的位置。记得替换掉占位符以匹配实际情况[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

demonin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值