论坛风格切换切换到宽版
  • 15阅读
  • 1回复

使用docker部署Nginx服务器 [复制链接]

上一主题 下一主题
离线北斗星
 

只看楼主 倒序阅读 使用道具 楼主   发表于: 2022-03-04
第一步:

docker pull nginx # 拉取镜像
mkdir -p /shw/nginx/conf # 创建配置文件目录
第二步:

复制代码
复制代码
# 拷贝配置文件
docker run --name nginx01 -d nginx:latest
docker cp nginx01:/etc/nginx/nginx.conf /shw/nginx/conf  #把容器中的nginx.conf文件复制到conf目录下
docker cp nginx01:/etc/nginx/conf.d/default.conf /shw/nginx/conf  #把容器中的default.conf文件复制到conf目录下
docker rm -f nginx01 #删除镜像
复制代码
复制代码
第三步:

复制代码
复制代码
# 创建容器
docker run -it -d --name mynginx -p 9999:80 -v /shw/nginx/html:/usr/share/nginx/html -v /shw/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /shw/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf  -v /shw/nginx/logs:/var/log/nginx nginx

命令说明:
docker run -it -d --name mynginx  #名称
-p 9999:80  # 端口映射
-v /shw/nginx/html:/usr/share/nginx/html  # 挂载资源路径
-v /shw/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  #挂载主配置文件
-v /shw/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf   # 挂载默认配置文件,反向代理就是从这个配置文件中配置
-v /shw/nginx/logs:/var/log/nginx nginx # 挂载日志文件
复制代码
复制代码
其中 /shw/nginx/html 表示存放的打包的资源根目录,也就是访问 9999 端口时 html 作为根目录,放一个简单的 index.html 即可。

最后进入到/shw/nginx/conf/default.conf修改成合适配置即可。



访问:http://ip:9999



想看镜像的内部目录结构,就得先把镜像运行起来,进入容器中,使用ls或者ls -l查看,ll不行。

docker exec -it [容器id] /bin/bash  # 进入容器

docker inspect [容器id]  # 查看容器挂载情况,在Mounts后面;
离线北斗星

只看该作者 沙发   发表于: 2022-03-04
Docker 安装#
apt update

# 自动安装 1
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

# 自动安装 2
curl -sSL https://get.daocloud.io/docker | sh

# 手动安装 - 成功率不高
wget https://download.docker.com/linux/debian/dists/buster/pool/stable/arm64/docker-ce_19.03.8~3-0~debian-buster_arm64.deb
sudo dpkg -i docker-ce*.deb
sudo apt -f install
版本

docker info
自启 / 重启 / 关闭 / 状态

systemctl start docker
systemctl restart docker
systemctl stop docker
systemctl status docker
卸载

mv /var/lib/dpkg/info/docker-ce* /tmp/
dpkg --remove --force-remove-reinstreq docker-ce
apt autoremove
apt autoclean
#rm -rf /var/lib/docker
加速镜像

rm -fr /etc/docker/daemon.json
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
当前镜像

service docker restart
docker info | grep "Registry Mirrors" -A 1
Docker Web#
给 Docker 添加可视化界面

# 忽略
docker rm Portainer -f
docker volume rm Portainer_data

# 创建卷
docker volume create Portainer_data

# 运行
docker run -d \
    --name=Portainer \
    --restart always \
    -e TZ=Asia/Shanghai \
    -p 10000:9000 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v Portainer_data:/data \
    portainer/portainer:linux-arm64

# 参数:
-d:后台运行
--name Portainer                                # 容器名称
--restart always                                # 开机自启
-e TZ=Asia/Shanghai                             # 设定时区
-p 10000:9000                                   # 宿主机 10000 端口映射容器的 9000 端口
-v /var/run/docker.sock:/var/run/docker.sock:   # 把宿主机的 Docker 守护进程 (Docker daemon) 默认监听的 Unix 域套接字挂载到容器中。
-v Portainer_data:/data:                        # 把宿主机 Portainer_data 数据卷挂载到容器 /data 目录

# https://portainer.readthedocs.io/en/stable/deployment.html
Web 访问地址

IP:10000 -> Local
Portainer 中文(未测试)

1.新建文件夹命名为 public ,把 Portainer-CN.zip 解压至里面。

2.public 文件夹传输至系统根目录

3.按需执行以下命令
x86-64 系统使用
docker run -d -p 10000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v Portainer_data:/data -v /public:/public portainer/portainer:1.20.2

arm64
docker run -d -p 10000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v Portainer_data:/data -v /public:/public portainer/portainer:linux-arm64-1.20.2

# 原作者:https://www.quchao.net/Portainer-CN.html
# 步骤:https://www.right.com.cn/forum/thread-940311-1-1.html
Docker 扩容#
挂载 U 盘

fdisk -l                    # 查看磁盘情况
mkfs.ext4 /dev/sda          # u 盘是 sda,执行格式化 sda
mkdir /mnt/USB              # 创建目录供挂载使用
mount -v /dev/sda /mnt/USB  # 挂载 U 盘
df -h                       # 查看挂载状态
umount -v /dev/sda          # 解除挂载
停止 Docker

service docker stop
方法 A [不推荐]:

mkdir -p /etc/docker

rm -fr /etc/docker/daemon.json
tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
    "graph": "/mnt/USB/docker",     # 关键行
    "log-opts":{
        "max-size" :"10m","max-file":"3"
    }
}
EOF
方法 B [不推荐]:

nano /etc/fstab
/opt/docker /var/lib/docker none bind 0 0
方法 C:

# 创建目录
mkdir /mnt/USB/docker -p

# 拷贝数据
# -rpvb 递归/保留属性/覆盖/详细
cp /var/lib/docker/* /mnt/USB/docker -rpvb
mv /var/lib/docker /var/lib/docker.bak

# 软连接:实际 + 目标
ln -s /mnt/USB/docker /var/lib

# 恢复步骤,删除软连接(警告!尾部没有左斜杠 /)
#rm -rf /var/lib/docker

# 生效/启动
systemctl daemon-reload
service docker restart

# 验证
docker info
#docker info | grep 'docker Root Dir'
-----------------
显示=成功
Docker Root Dir: /mnt/USB/docker

# 重启自动挂载 U 盘,在 rc.local
sed -i '/exit 0/i\mount -v /dev/sda /mnt/USB' /etc/rc.local
Docker 玩法#
30 多种玩法!
https://www.right.com.cn/forum/thread-911375-1-1.html
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个