Docker 镜像的制作、拉取与运行
发表于2026-03-14|更新于2026-05-10|工程
|总字数:1.2k|阅读时长:4分钟|浏览量:|
|出链:0|入链:2
摘要生成中...
AI 摘要
Hunyuan-lite
在日常场景中,总会有一些操作我们都会时不时用到,你可以直接上网搜索,或直接问豆包。由于个人习惯问题,我还是更倾向与参考个人以往成功的经验。可以理解为这是日常场景开发时凝结成的自己的 Skill,当经验归好档,获取时就更可信、更便捷了。
Docker 是一种容器技术,可以将项目的环境(比如 Java、Nginx)和项目的代码一起打包成镜像,所有具有权限的用户都能下载镜像,更容易分发和移植。
下载安装 Docker 后,检查 Docker 安装是否成功:
1
docker --version
国内网络环境连不上 Docker 仓库,因此我们需要换镜像源(常规操作)。步骤:
- 编辑 Docker 配置文件:
vim /etc/docker/daemon.json - 替换成下面的配置文件
1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://dockerproxy.com",
"https://hub.rat.dev"
]
}
- 重启 Docker:
systemctl daemon-reload && systemctl restart docker,通知 Linux 服务管理器重新加载所有服务的配置文件,然后重启 Docker 服务让刚刚刷新的 Docker 新配置正式生效。 - 测试:
docker pull hello-world能秒拉就说明成了
拉取镜像的指令很简单:
1
docker pull <镜像名>
当然,你可以在 docker run 中直接指定未拉取下来的镜像,本地没有镜像时会自动 pull 下来。
1
2
3
4
5
6
7
docker run
-d \ # -d 后台运行
--restart always \ # 指定重启策略
-e driverName=mysql \ # -e 给容器内容传环境变量
-e dataSourceName='user:password@tcp(x.x.x.x:3306)/' \
-p 8000:8000 \ # -p 端口映射,外面端口:里面端口
myapp # 镜像名称
--restart 的重启策略:
always:无论如何,只要 Docker 启动,容器就启动。unless-stopped:只要不是你手动 stop,就自动重启。on-failure:只有崩溃才重启no:不重启(默认)
Dockerfile 记录了项目的打包构建流程,我们可以通过编写这个文件指定构建 Docker 镜像的方法。一般情况下,Dockerfile 不需要自己写,可以直接在网上找。
Dockerfile 一般放置在项目的根目录中:
FROM:依赖的基础镜像WORKDIR:工作目录COPY:从本机复制文件RUN:执行命令CMD/ENTRYPOINT:指定运行容器时默认执行的命令,ENTRYPOINT可以附加额外参数
对于同一个应用程序,Dockerfile 有不同的编写策略:
- 构建镜像时复做程序编译的过程(对当前服务器内存有影响);
- 直接将编译好的应用程序制作成镜像。
示例:将打包好的 Java 应用程序制作为镜像。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM openjdk:21
WORKDIR /app
COPY myapp-0.0.1-SNAPSHOT.jar /app
EXPOSE 8991
CMD ["java", "-jar", "myapp-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]
准备好的文件结构:
1
2
3
a_comfortable_place/
├── Dockerfile # 里面是刚刚写好的 Dockerfile
└── myapp-0.0.1-SNAPSHOT.jar
在此目录下,执行:
1
2
# -t 打标签,"."表示使用当前的目录的Dockerfile构建镜像
docker build -t myapp:v1 .
这样,镜像就制作好了。
在前面的介绍中,我们可以通过docker run指定参数运行单个容器。如果需要一下子运行多个容器,每个容器配置多个参数,手敲docker run就变得很麻烦了。
我们可以使用docker compose解决这个问题。首先,我们在文件夹里,准备好两个文件:
1
2
docker-compose.yml
.env
docker-compose.yml 相当于菜谱,里面定义了要启动的容器、要使用的镜像、端口映射和环境变量。.env存放各种环境变量,比如端口配置、数据库密码等。
运行方法为进入文件夹,执行:
1
2
docker compose pull # 下载镜像
docker compose up -d # 后台启动
如果中途更改环境变量.env可以执行下面的命令使之重新生效:
1
2
docker compose down
docker compose up -d
1
2
3
4
5
docker ps
docker kill <CONTAINER…>
docker logs <CONTAINER>
docker images
docker rmi -f IMAGE [IMAGE…]
版权声明 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 半方池水半方田!
封面生成即梦 AI - 图片 5.0 Lite
Prompt卡通平面风格博客封面,以Docker镜像的生命周期为主题,包含Docker标志,色彩鲜艳活泼,元素布局层次清晰,无文字
文章助手
豆包
赞助
wuanqin
只能懂一点点
最新文章

