Mobile wallpaper 1
1207 字
6 分钟
云计算基础课程docker作业11-15
2025-12-24
加载中...
加载中...

云计算基础课程作业#

注意: 如果您还没有安装 Docker,请先参考 CentOS 7 安装 Docker 的安装指南。

本文档记录了云计算基础课程中的几项Docker相关作业,包括Docker镜像创建、Nginx镜像构建、桥接网络配置以及卷操作。

作业11:创建Docker镜像#

(1)建立项目目录#

mkdir -p ~/docker-layers-test && cd ~/docker-layers-test

(2)创建 app.py#

cat > app.py <<'EOF'
#!/usr/bin/python
print("Hello, World!")
EOF

(3)创建 Dockerfile#

cat > Dockerfile <<'EOF'
FROM ubuntu:16.04
COPY ./ /app
RUN apt-get -y update && apt-get install -y python
CMD python /app/app.py
EOF

(4)构建镜像#

docker build -t img-layers-test .

(5)查看分层信息#

docker history img-layers-test

输出5后截图上传即可

![作业11截图](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224142048.webp)


作业12:“自建 Docker 注册中心(Registry)#

1 启动本地私有仓库(Registry 容器)#

docker run -d -p 5000:5000 \
--restart=always \
--name myregistry \
-v /opt/data/registry:/var/lib/registry \
registry

执行成功会返回一长串容器 ID。


2 确认仓库在线#

curl http://127.0.0.1:5000/v2/_catalog

应返回:

{"repositories":[]}

(空列表说明仓库已启动,暂无镜像)


3 给本地镜像打”私有仓库标签”#

docker tag hello-world 127.0.0.1:5000/hello-world:v1

4 推送到自建中心#

docker push 127.0.0.1:5000/hello-world:v1

首次推送会分层上传,结尾出现:

v1: digest: sha256:xxxx... size: xxxx

5 验证仓库里已有镜像#

curl http://127.0.0.1:5000/v2/_catalog

现在返回:

{"repositories":["hello-world"]}

截图交作业即可 作业12 ![作业13截图](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224143757.webp)

作业13:构建Nginx镜像#

下面给出”一条命令”就能跑起来的 Docker 版 nginx 镜像构建/运行 完整流程,你只需按顺序执行并截图即可提交。


1 准备目录和文件(可复用)#

mkdir -p ~/docker-nginx && cd ~/docker-nginx

2 编写 Dockerfile(基于官方 alpine 镜像,体积最小)#

cat > Dockerfile <<'EOF'
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
EOF

3 准备一个简单的首页#

cat > index.html <<'EOF'
<!DOCTYPE html>
<html>
<head><title>Docker Nginx</title></head>
<body>
<h1>Hello from Docker Nginx!</h1>
</body>
</html>
EOF

4 构建镜像(注意最后有个点)#

docker build -t my-nginx:1.0 .

5 运行容器(映射到主机 8080)#

docker run -d --name nginx-test -p 8080:80 my-nginx:1.0

6 验证 & 截图#

  • 浏览器访问 http://127.0.0.1:8080,出现 “Hello from Docker Nginx!”
  • 终端执行:
    docker images | grep my-nginx
    docker ps

或者使用curl 127.0.0.1:8080

  • 把以上两个命令截图就行了

![作业13截图](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224143757.webp)

作业14:Docker桥接网络配置#

作业说明:#

根据视频,完成docker网络的配置 ,并将主要的配置过程截图提交。 -将容器连接到默认桥接网络

-创建用户自定义桥接网络并连接容器

下面给出完整、可截图的「默认桥接 + 自定义桥接」两步操作,全部命令行一次性复制即可。


0 环境清理(可选)#

docker stop $(docker ps -aq) 2>/dev/null
docker rm $(docker ps -aq) 2>/dev/null

1 默认桥接网络(docker0)演示#

① 运行两个无网络参数的容器,会自动接到 bridge(默认)

docker run -dit --name default1 alpine ash
docker run -dit --name default2 alpine ash

② 查看网络与容器 IP

docker network ls
docker network inspect bridge | grep -A 20 "Containers"

③ 连通性测试(default1)

docker attach default1
ping www.baidu.com

ctrl+c暂停ping之后exit退出然后截图上传即可#

![作业14截图1](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224145547.webp)

2 用户自定义桥接网络#

① 创建新网络 my-bridge

docker network create my-bridge

② 运行两个容器并 显式指定网络

docker run -dit --name custom1 --network my-bridge alpine ash
docker run -dit --name custom2 --network my-bridge alpine ash

③ 查看新网络详情

docker network inspect my-bridge | grep -A 30 "Containers"

④ 连通性测试(custom1 → custom2,可用容器名直接 ping,这是自定义桥接的特性)

docker exec custom1 ash -c "ping -c 3 custom2"

④ 之后截图直接交 ![作业14截图2](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224150808.webp)

作业15:Docker卷操作#

作业说明:#

根据视频,完成docker卷的操作 ,并将主要的配置过程截图提交

下面把”作业15:docker卷操作”完整流程一次性贴给你,按顺序执行即可截图上交。


1 创建卷#

docker volume create test-vol

2 列出所有卷#

docker volume ls

预期能看到:

DRIVER VOLUME NAME
local test-vol

3 查看卷详细信息#

docker volume inspect test-vol

重点字段(截图用):

"Mounts": [{
"Type": "volume",
"Name": "test-vol",
"Source": "/var/lib/docker/volumes/test-vol/_data",
"Destination": "/world",
"Driver": "local",
"RW": true
}]

4 启动容器并挂载该卷(验证读写)#

docker run -dit --name vol-test \
-v test-vol:/world \
alpine ash

5 容器内写数据验证卷生效#

docker exec vol-test ash -c "echo hello-docker > /world/test.txt"
docker exec vol-test ash -c "cat /world/test.txt"

应输出 hello-docker

6 宿主机侧查看卷内容(证明数据已落盘)#

sudo cat /var/lib/docker/volumes/test-vol/_data/test.txt

同样出现 hello-docker 即成功。 截图

![作业15截图1](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224151737.webp)

7 清理:先删容器,再删卷#

docker stop vol-test
docker rm vol-test
docker volume rm test-vol

8 最终验证卷已消失#

docker volume ls

列表里不再有 test-vol

再截图

![作业15截图2](/images/posts/cloud-computing/云计算基础课程作业/Pasted image 20251224151916.webp)

云计算基础课程docker作业11-15
https://www.suyukk.xyz/posts/学习文章/云计算基础课程作业/
作者
素鱼
发布于
2025-12-24
许可协议
Unlicensed
文章统计
-
浏览量
-
访客数

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00