# docker容器技术期末实操

本文作者:明凡

站长:明凡

本站地址:https://mingfancloud.cn (opens new window)

docker容器技术期末实操视频直下链接 (opens new window)

# 1.安装docker环境

# 1.1 docker-exam虚拟机配置

cd /etc/yum.repos.d/
1
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
1

清理yum源

yum -y update    //更新yum
yum clean all    //清除yum缓存
yum makecache    //重建yum缓存
1
2
3

# 配置小游戏

下载游戏资源文件,解压

暂时无法在飞书文档外展示此内容

上传到Linux目录

创建Dockerfile文件

vim Dockerfile
1

复制以下命令到Dockerfile

# 使用CentOS 7作为基础镜像
FROM centos:7.9.2009

#设置yum仓库
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
RUN sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

# 清理不必要的包缓存
RUN yum clean all

# 更新软件包列表并安装Apache HTTP Server
RUN yum update -y && yum install -y httpd

# 将游戏资源文件(当前目录下)复制到容器的/var/www/html目录下
COPY ./HexGL /var/www/html/

# 开放80端口
EXPOSE 80

# 在容器启动时运行Apache HTTP Server
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

修改后的Dockerfile

# 使用httpd作为基础镜像
FROM httpd

# 将游戏资源文件(当前目录下)复制到容器的/var/www/html目录下
COPY ./HexGL /usr/local/apache2/htdocs

# 在容器启动时运行httpd
CMD ["httpd-foreground"] 
1
2
3
4
5
6
7
8

构建镜像

docker build -t game-xxx .
1

运行镜像

docker run -d -p 80:80 game-xxx
1

推送镜像到Harbor私有仓库

修改daemon.json

vi /etc/docker/daemon.json
{
    "registry-mirrors": [ "https://88a8bf279d4a486ba021cdfcb4abc36d.mirror.swr.myhuaweicloud.com" ],
    "insecure-registries": ["192.168.1.122"]
}
1
2
3
4
5

重启docker引擎

systemctl daemon-reload
systemctl restart docker
1
2

登录私有仓库:

docker login -u admin -p Harbor12345 192.168.1.122
1

img

推送本地镜像到私有仓库

img

# 给本地镜像打tag
docker tag game:latest 192.168.1.122/library/game-姓名
# 推送镜像到私有仓库
docker push 192.168.1.122/library/game-姓名
1
2
3
4

使用Docker部署webtop桌面版Linux环境

docker pull  registry.cn-hangzhou.aliyuncs.com/jeson/webtop:latest
docker run -d \
  --name=webtop \
  --privileged `#optional` \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -e SUBFOLDER=/ `#optional` \
  -p 5000:3000 \
  -v /path/to/data:/config \
  -v /var/run/docker.sock:/var/run/docker.sock `#optional` \
  --shm-size="1gb" `#optional` \
  --restart unless-stopped \
  registry.cn-hangzhou.aliyuncs.com/jeson/webtop:latest
1
2
3
4
5
6
7
8
9
10
11
12
13
14

马里奥

docker pull registry.cn-guangzhou.aliyuncs.com/os_cmty/os_cmty:mario
docker run -d -p 5000:8080 --name maliao --restart=always registry.cn-guangzhou.aliyuncs.com/os_cmty/os_cmty:mario
1
2

# 黑马商城

#解压压缩包
unzip 192.168.187.128.zip
#切换目录
cd 192.168.187.128
查看目录
ls
Dockerfile、hm-service.jar文件自己找
find / -name Dockerfile
find / -name hm-service.jar
1
2
3
4
5
6
7
8
9

# 1.安装docker-compose

# 方法一:

//使用 curl命令来下载docker-compose文件
curl -SL "https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
//二进制文件设置可执行权限
chmod +x /usr/local/bin/docker-compose
//测试安装结果
docker-compose -v
1
2
3
4
5
6

# 方法二:

①下载docker-compose二进制文件:

暂时无法在飞书文档外展示此内容

②将文件通过MobaXterm移动至/usr/local/bin/目录

③执行如下命令

//修改文件名称
mv /usr/local/bin/docker-compose-linux-x86_64 /usr/local/bin/docker-compose
//二进制文件设置可执行权限
chmod +x /usr/local/bin/docker-compose
//测试安装结果
docker-compose -v
1
2
3
4
5
6

# 2.docker项目

https://blog.laoda.de/categories/docker-series

创建docker-compose.yml

yum install -y vim
vim docker-compose.yml
1
2

运行docker-compose

docker-compose up -d  //运行容器
docker-compose down   //停止并移除容器
1
2

# 试题考卷

# 1.安装docker环境

# 1.1.“docker-exam”虚拟机配置

①解压虚拟机压缩包,并使用VMware打开。docker-exam的ens33网卡默认未启动,启动docker-exam网卡。

img

②虚拟机主机名修改,命名格式:docker-姓名全拼,例:docker-zhangsan。输入“su”生效。

img

③Yum源修改

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
1

④Yum源更新、重建缓存

img

⑤命令行补全工具包安装,输入“su”生效。

img

# 1.2.安装和配置docker

①配置docker-ce Yum源

yum install -y yum-utils device-mapper-persistent-data lvm2 git
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1
2

②安装docker-ce社区版

img

③配置docker镜像加速

新建或编辑/etc/docker/daemon.json文件,粘贴以下内容:

{
    "registry-mirrors": [ "https://88a8bf279d4a486ba021cdfcb4abc36d.mirror.swr.myhuaweicloud.com" ]
}
1
2
3

重启docker引擎

img

# 2.构建竞速小游戏镜像

# 2.1.游戏资源文件下载

①资源文件下载并上传至虚拟机root目录

暂时无法在飞书文档外展示此内容

②解压压缩包,解压命令如下:

img

# 2.2.构建镜像

①创建Dockerfile文件,并编辑该文件。以下为Dockerfile文件参考命令,由于基础镜像为Centos7.9,构建后的镜像包过大,**不能使用以下参考命令构建镜像!**docker镜像仓库中存在httpd镜像,根据以下参考命令,自行思考。使用httpd作为基础镜像自行编写Dockerfile文件,要求构建镜像大小不能超过200MB!!!

所需参数:httpd镜像包html目录/usr/local/apache2/htdocs

查看镜像构建历史:docker history httpd

img

②构建镜像命令,镜像命名方式:game-姓名拼音全拼,如:game-zhangsan

img

③运行构建镜像,测试服务是否正常

img

④运行浏览器输入**虚拟机IP地址:端口号测试访问,并将截图粘贴至新建word文件中

# 2.3.推送小游戏镜像至私有镜像仓库

①修改daemon.json信息,添加私有仓库IP地址(192.168.1.122)

{
    "registry-mirrors": [ "https://88a8bf279d4a486ba021cdfcb4abc36d.mirror.swr.myhuaweicloud.com" ],
    "insecure-registries": ["192.168.1.122"]
}
1
2
3
4

重启docker引擎

img

②登录私有仓库,给本地小游戏镜像打tag,推送至私有仓库

img

给本地镜像打tag

docker tag game-xxx:latest 192.168.1.122/classx/game-xxx  //修改
           本地镜像名称                     班级 私有仓库镜像名称
例:1班张三本地镜像为game-zhangsan
docker tag game-zhangsan:latest 192.168.1.122/class1/game-zhangsan
1
2
3
4

推送镜像至私有仓库

docker push 192.168.1.122/classx/game-xxx
例:1班张三本地镜像为game-zhangsan
docker push 192.168.1.122/class1/game-zhangsan
1
2
3

# 3.电商商城部署

# 3.1.资源文件下载

①资源文件下载并上传至虚拟机root目录

暂时无法在飞书文档外展示此内容

②解压文件

# 3.2.安装docker-compose

①下载二进制文件,上传至虚拟机/usr/local/bin/目录

暂时无法在飞书文档外展示此内容

②执行如下命令

img

# 3.3.创建docker-compose.yml文件

①在资源目录中创建docker-compose文件并写入以下命令

version: "3.8"
services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "./mysql/conf:/etc/mysql/conf.d"
      - "./mysql/data:/var/lib/mysql"
      - "./mysql/init:/docker-entrypoint-initdb.d"
    networks:
      - hm-net
  hmall:
    build: 
      context: .
      dockerfile: Dockerfile
    container_name: hmall
    ports:
      - "8080:8080"
    networks:
      - hm-net
    depends_on:
      - mysql
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "18080:18080"
      - "18081:18081"
    volumes:
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/html:/usr/share/nginx/html"
    depends_on:
      - hmall
    networks:
      - hm-net
networks:
  hm-net:
    name: hmall
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

②分析以上命令运行逻辑,并将所需文件移动至docker-compose文件所在目录

# 查找命令
find /root/xxxx/ -name xxxx
      查找目录         文件名
1
2
3

③执行docker-compose.yml文件,测试业务

img

④访问商城页面,测试网页交互逻辑。并将以下截图粘贴至新建word文件中

---首页

---登录商城,账号/密码:jack/123

---搜索页面

# 提交答案

①下载shell文件并上传至root目录

暂时无法在飞书文档外展示此内容

②修改shell文件输出文件名

sed -i '5c\OUTPUT_FILE="/root/commit-classx-xxx.txt"' commit.sh //修改文件名称
例:1班张三
sed -i '5c\OUTPUT_FILE="/root/commit-class1-zhangsan.txt"' commit.sh
1
2
3

③执行完第②步后,执行shell文件

sh commit.sh
1

④截图提交:

ftp://192.168.1.100

用户名/密码:save/123456

img

最近更新: 3/19/2025, 1:11:00 PM
明凡编程宝典   |