Docker的使用
构建Dockerfile注意事项
一个目录下只能有一个Dockerfile文件,而且这个文件开头D必须大写,没有后缀名
docker run --rm 镜像名称
--rm(或 --rm=true)表示:当容器退出(停止运行)后,Docker 会自动删除该容器。
上课相关
9/23Docker学习
Docker打标签
docker tag container_id name:version
1、根据上节课打包的Ubuntu.tar镜像文件进行打包
手动创建几个大文件夹
dd if=/dev/zero of=large-file1.bin bs=1M count=50
仿写此段代码创建三个large-file文件分别命名为1 2 3
其count值分别为50 30 20
2、利用上节课的镜像文件ubuntu.tar文件
进行改名命名格式为自己姓名缩写+学号:v1.0 (hexiaolei17:v1.0)
截图上传docker images结果图
原来大小

3、书写Dockerfile文件内容

旧的Dockerfile
FROM hexiaolei17_ubuntu:v1.0
WORKDIR /app
COPY large-file1.bin .
COPY large-file2.bin .
COPY large-file3.bin .
COPY small-file.txt .
CMD ["/usr/bin/cat","small-file.txt"]
运行build文件并查看docker images
如果出现最新层的镜像大小为100+M即视为成功
docker bulid -t hexiaolei17_ubnutu:v1 .


并查看镜像历史,看到所形成的层数
docker history hexiaolei17_ubuntu:v1 容器id开头b2就用b2开头
构建历史截图


修改Dockerfile文件,利用续行符“\”来减少层数

新的Dockerfile
FROM hexiaolei17_ubuntu:v1.0
WORKDIR /app
RUN mkdir -p /tmp/files && \
dd if=/dev/zero of=/tmp/files/large-file1.bin bs=1M count=50 && \
dd if=/dev/zero of=/tmp/files/large-file2.bin bs=1M count=50 && \
dd if=/dev/zero of=/tmp/files/large-file3.bin bs=1M count=50 && \
# 删除文件
ls -lh /tmp/files/ && \
# 删除文件操作
rm -f /tmp/files/large-file*.bin && \
echo "File have been deleted,剩余文件" && ls -lh /tmp/files
COPY small-file.txt .
CMD ["/usr/bin/cat","small-file.txt"]
使得最后的文件大小和原来镜像大小基本相同即可。Docker images 78.1M
docker build –t hexiaolei17_ubuntu:v3

构建后过程

后面的cat文件

9/24
其余知识点
创建一个网络
docker network create -d bridge {net_name}
先在镜像内安装好ping
FROM library/ubuntu:latest
RUN apt-get update && \
apt -y install iputils-ping
然后直接构建新的镜像
docker build -t ubuntu:v1 .
启动两个容器
docker run -itd --name slave1 --network {net_name} ubuntu:v1 /bin/bash
docker run -itd --name slave2 --network {net_name} ubuntu:v1 /bin/bash
进入其中一个容器:docker exec -it {container_id} /bin/bash
直接:ping {container_name}
效果:
posted on 2025-09-17 18:52 suiseiseki 阅读(15) 评论(0) 收藏 举报
浙公网安备 33010602011771号