瞎折腾系列
更新于 2026-09-18
通过frps镜像的制作学习Docker镜像制作
本文源码
https://github.com/sandy1108/frps-docker
以Dockerfile脚本的形式制作Docker镜像
制作步骤
下载ubuntu基础镜像(这里采用了19.04版)
docker pull ubuntu:19.04
查看本地镜像列表
docker image ls -a
docker images
编写Dockerfile
1 | FROM ubuntu:19.04 |
构建镜像
docker build -t frps:0.27.1
由镜像生成容器
运行镜像到容器
docker run -itd -p [要映射到的宿主机端口]:[容器内需要被映射服务端口] –name [要新建的容器ID或名称] [镜像ID或名称] /bin/bash
其中,d参数代表后台运行容器,返回容器ID;不添加d参数,则会在当前会话执行容器的CMD。
例如:
1 | docker run -itd -p 9191:7000 -p 9191:7000/udp --name myfrp-test-08 frps:0.27.1 |
(另一种情况)运行镜像到直接使用宿主机网络的容器(这样frp可以随意开放端口了,只要防火墙开放就行,个人认为比较适用于frp服务。host模式解释https://docs.docker.com/network/host/)
docker run -itd –network=host –name myfrp-test-08 frps:0.27.1
进入容器
1 | docker exec -it [container名称或者ID] /bin/bash |
附:以容器当前状态保存为镜像(一般是测试或者备份使用)
- 命令解释
1 | # docker commit \[OPTIONS] CONTAINER \[REPOSITORY\[:TAG]] |
1 | \-a :提交的镜像作者; |
- 示例
1 | docker commit -a "sandy1108" -m "just for test" container\_ID\_OR\_NAME ImageName\:tagv1 |
- 查看镜像会发现本地多了一个镜像
1 | docker images |