一些蛋老师视频的知识点总结

115 阅读3分钟

创建自定义 bridge 网络

docker network create -d bridge naihe-bridge

关于Curl

指定下载速率

curl --limit-rate 100k -o bb.iso xxxx

恢复下载文件

curl -C - -o bb.iso xxxx

跟随重定向

curl xxxx -L

显示详细信息

curl -v -L xxxx

通过代理访问

curl --proxy 协议://用户名:密码@代理地址:端口 url

下载文件

curl -u 用户名:密码 -O ftp://server/xxx //大写O或小写o 来下载文件

上传文件

curl -u 用户名:密码 -T 文件 ftp://server

ping的时候产生 audio音响

ping -a xxxx

关于网络安全

iptables->表->链->规则

查看 filter 表的信息

iptables --table filter --list --line-numbers

添加一条规则拒绝指定IP访问(有多个链时按照从上往下开始执行)

iptables \
--table filter \
--append INPUT \
--source 192.168.3.20 \
--jump REJECT
  • REJECT [拒绝]
  • DROP [丢弃]

删除一条规则

iptables --table filter --delete INPUT 1 //删除filter表的INPUT链的第一条规则

ipset

可以把众多的ip地址段单独汇集成一个集合,集合可以生成唯一的hash值

//创建集合
ipset create name hash:net
//展示集合
ipset list name

ipset 与 iptables 结合的脚本

# 1、创建 block-india.sh 的文件
touch block-india.sh 
# 2、编写sh的内容 
#!/bin/bash

ipset create asan hash:net -exist #创建ipset集合
ipset flush asan #清除元集合存在的ip地址段

# 下载最新文件,文件存在则删除重新下载
[ -f "in-aggregated.zone" ] && rm in-aggregated.zone
wget https://www.ipdeny.com/ipblocks/data/aggregated/in-aggregated.zone

# 判断下载是否成功
if [ $? -eq 0 ]
then 
	echo "******** Download *****"
	# 将ip里的数据添加到ipset集合
	for address in `cat in-aggregated.zone`
	do
		ipset add asan $address
	done

else
	echo "******** Fail *****"
fi

# 添加iptables规则
iptables \
--table filter \
--append INPUT \
--match set --match-set asan src \
--jump DROP

.!where 可以快速加入 #!/bin/bash

保存ipset与iptables

  • ipset save > /etc/rules.ipset # 保存ipset集合到文件中
  • iptables-save > /etc/rules.iptables # 保存iptables规则到文件中
  • ipset restore < /etc/rules.ipset # 恢复ipset集合, -exist 避免覆盖源文件
  • iptables-restore < /etc/rules.iptables # 恢复iptables规则, --noflush 避免覆盖源文件

获取国家的ip地址段

www.ipdeny.com

查看主机的ip地址

hostname -I

创建 dockerfile

touch Dockerfile

FROM node:18-alphine3.15 //选择基础镜像
WORKDIR /egg //切换工作目录
COPY package.json . //拷贝文件
RYN npm install //运行指定命令,构建运行时的命令
COPY . . //拷贝剩余文件
EXPOSE 3000 //暴露端口号
CMD ["node","app.js"] //运行镜像里的app.js,启动容器时的命令

.dockerignore 把不想复制到镜像的文件和文件夹写在此文件里
docker build . //运行dockerfile文件
docker tag imageId name //为镜像起名字,例: docker tag e6f dansoncut/nodejs:v1.0

docker 运行容器解析

docker run -d /宿主机目录:/容器目录 -v /容器目录 -p:宿主机端口:容器端口 --name 容器名 镜像名

-v 容器目录 //禁止同步容器目录
-v 宿主机目录:/容器目录:ro //标识宿主机目录仅读,容器内产生的文件不会导致宿主机内容变化
使用了volum映射后,在删除容器时记得删除vloum,否则会越来越多 docker rm -fv 容器名

docker-compose

  • 新建 docker-compose.yml 文件
  • 编写 docker-compose.yml 文件
version: "3.8" #版本号
services:  
  eggpain-container: #容器名
    build: .
    ports:
      - "3000:3000"
    volumes:
      - ./:/egg:ro
      - /egg/node_modules

  • docker-compose up -d --build

后台执行 docker-compose.yml,--build 若compose文件有修改就会重建,若不加下次就会使用上次的缓存

  • docker-compose down -v

清除容器,-v标识清楚对应volume

Docker概念,工作流和实践