51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用 Dockerfile 构建 docker 镜像

文章介绍:本篇博客初衷在于,第一:学习自己构建docker镜像,将自己喜欢的程序打包成docker镜像方便自己使用,第二:前段时间发布的[【Vyos-开源篇-6】- Vyos+GoBGP+SmartDNS 实现智能分流]有网友说,能不能省去云上的VPS,这样显的配置很繁琐,经过自己严格的思想斗争下,决定把步骤简化,只需要在vyos中配置几条命令就能基于BGP动态路由实现路由分流功能。

一、操作前准备 {#一-操作前准备}

1、一台安装好docker的linux(本篇以ubuntu为例)

2、要打包成docker镜像的程序(本篇用以博主的BGPServer为例)

3、docker hub 的账号(Docker Hub

二、ubuntu安装docker {#二-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镜像 {#三-构建Docker镜像}

3.1、创建docker目录 {#3-1-创建docker目录}

mkdir docker

3.2、进入docker目录 {#3-2-进入docker目录}

cd docker

3.3、创建Dockerfile {#3-3-创建Dockerfile}

nano Dockerfile

把下面的内容贴入Dockerfile中
以下信息是获取中国路由信息(CN)

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、构建镜像 {#3-4-构建镜像}

bgpserver;cn 是可自定义参数(cn表示中国IP路由,这里是用于标识该镜像是拉取中国路由),这里的俩个参数根据你自己的想法自定义即可。

docker build -t bgpserver:cn .

3.5、查看镜像 {#3-5-查看镜像}

docker images

3.6、测试启动容器 {#3-6-测试启动容器}

3.6.1、创建docker网络 {#3-6-1-创建docker网络}

docker network create --subnet=100.66.66.0/30 bgpnetwork

3.6.2、启动容器 {#3-6-2-启动容器}

docker run -itd --name bgpserver --restart always --network bgpnetwork --ip 100.66.66.2 bgpserver:cn

3.6.3、查看容器状态 {#3-6-3-查看容器状态}

看见容器是up的表示启动完成

docker ps

yydy_2024-05-29_17-15-08

3.6.7、进入容器 {#3-6-7-进入容器}

docker exec -it bgpserver bash

3.6.8、查看bgp端口是否启动 {#3-6-8-查看bgp端口是否启动}

netstat -atunlp | grep 179

yydy_2024-05-29_17-18-14

四、上传镜像至Docker Hub {#四-上传镜像至Docker-Hub}

可以将做好的镜像上传到docker hub便于下次使用,就可以直接拉取镜像然后docker run

4.1、登录docker {#4-1-登录docker}

docker login

4.2、输入用户名 {#4-2-输入用户名}

输入用户名回车

yydy_2024-05-29_17-21-02

4.3、输入密码 {#4-3-输入密码}

输入密码是看不见的,输完回车,可以看到登录成功

yydy_2024-05-29_17-22-29

4.4、为镜像添加 Docker Hub 的仓库前缀 {#4-4-为镜像添加-Docker-Hub-的仓库前缀}

yangpin是你的docker账号名(也可自定义),后面的bgpserver:cn同上,运行完是没有任何回显的

docker tag bgpserver:cn yangpin/bgpserver:cn

4.5、上传镜像到 Docker Hub {#4-5-上传镜像到-Docker-Hub}

docker push yangpin/bgpserver:cn

yydy_2024-05-29_17-32-48

4.6、打包镜像 {#4-6-打包镜像}

可以将镜像打包出来,解压后是二进制文件,可以直接运行

docker save -o bgpserver.tar bgpserver:cn

五、查看Docker Hub {#五-查看Docker-Hub}

yydy_2024-05-29_17-35-33

yydy_2024-05-29_17-36-14

yydy_2024-05-29_17-37-11

yydy_2024-05-29_17-36-51

赞(0)
未经允许不得转载:工具盒子 » 使用 Dockerfile 构建 docker 镜像