文章介绍:本篇博客初衷在于,第一:学习自己构建docker镜像,将自己喜欢的程序打包成docker镜像方便自己使用,第二:前段时间发布的[【Vyos-开源篇-6】- Vyos+GoBGP+SmartDNS 实现智能分流]有网友说,能不能省去云上的VPS,这样显的配置很繁琐,经过自己严格的思想斗争下,决定把步骤简化,只需要在vyos中配置几条命令就能基于BGP动态路由实现路由分流功能。
一、操作前准备
二、ubuntu安装docker
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && docker -v
三、构建Docker镜像
3.1、创建docker目录
mkdir docker
3.2、进入docker目录
cd docker
3.3、创建Dockerfile
nano Dockerfile
FROM ubuntu:22.04
RUN apt update -y && \
apt -y install sudo wget screen nano net-tools lsof && \
wget -O bgp "https://github.com/yangpin97/BGPServer/releases/download/0.5/bgp" && \
wget -O ChinaBGPZip.gob "https://github.com/yangpin97/BGPServer/releases/download/0.5/ChinaBGPZip.gob" && \
wget -O config.ini "https://github.com/yangpin97/BGPServer/releases/download/0.5/config.ini" && \
wget -O map.json.gz "https://github.com/yangpin97/BGPServer/releases/download/0.5/map.json.gz" && \
chmod +x bgp
CMD ["bash", "-c", "screen -S bgp -d -m ./bgp -c ./config.ini -l CN; tail -f /dev/null"]
3.4、构建镜像
docker build -t bgpserver:cn .
3.5、查看镜像
docker images
3.6、测试启动容器
3.6.1、创建docker网络
docker network create --subnet=100.66.66.0/30 bgpnetwork
3.6.2、启动容器
docker run -itd --name bgpserver --restart always --network bgpnetwork --ip 100.66.66.2 bgpserver:cn
3.6.3、查看容器状态
docker ps
3.6.7、进入容器
docker exec -it bgpserver bash
3.6.8、查看bgp端口是否启动
netstat -atunlp | grep 179
四、上传镜像至Docker Hub
4.1、登录docker
docker login
4.2、输入用户名
4.3、输入密码
4.4、为镜像添加 Docker Hub 的仓库前缀
docker tag bgpserver:cn yangpin/bgpserver:cn
4.5、上传镜像到 Docker Hub
docker push yangpin/bgpserver:cn
4.6、打包镜像
docker save -o bgpserver.tar bgpserver:cn