Part 6 - Docker部署和管理

2021-10-25
3分钟阅读时长

«返回课程汇总页面

【版本】

当前版本号v20221105

版本修改说明
v20221105加入常见问题
v20211025初始化版本

【实验名称】实验6.1 安装 Docker

【实验目的】

  • 掌握 Docker 的安装

【实验环境】

  • VirtualBox
  • FinalShell

【实验资源】

  • docker-repo.tar
链接:https://pan.baidu.com/s/1kw7nT7dbonUTSlPqIHVwhQ 
提取码:heis

【实验步骤】

  1. 使用root 用户登录Tmpl虚拟机。
su
  1. 安装创建 yum 源库的命令 createrepo
yum install -y createrepo
  1. 创建目录用于存放 docker 源库。
mkdir /var/docker/repo -p
  1. 上传docker-repo.tar/var/docker/repo
cd /var/docker/repo
rz
  1. 解压docker-repo.tar
tar -xvf docker-repo.tar
  1. 创建 Docker 源库。
createrepo /var/docker/repo
  1. 编辑 yum 源的配置文件。
vi /etc/yum.repos.d/local.repo
  • 加入以下内容
[docker]
name=docker
baseurl=file:///var/docker/repo
gpgcheck=0
  1. 重新生成 yum 的缓存。
yum makecache fast
  1. 安装 Docker。
yum install docker -y
  1. 启动 Docker。
systemctl start docker
  1. 查看 Docker 的版本
docker version
  • 正常应该可以看到以下类似内容:
Client:
 Version:         1.13.1
 API version:     1.26
 Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Mon Jun  7 15:36:09 2021
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
 Go version:      go1.10.3
 Git commit:      7d71120/1.13.1
 Built:           Mon Jun  7 15:36:09 2021
 OS/Arch:         linux/amd64
 Experimental:    false

【实验名称】实验6.2 导入 Docker 镜像并启动

【实验目的】

  • 掌握 Docker 的安装

【实验环境】

  • VirtualBox
  • FinalShell

【实验资源】

  • tomcat.tar 该文件是一个 Docker 镜像,镜像包含一个 Tomcat(HTTP 服务器)应用。
链接:https://pan.baidu.com/s/1kw7nT7dbonUTSlPqIHVwhQ 
提取码:heis

【实验步骤】

  1. 使用root 用户登录Tmpl虚拟机。
su
  1. 上传tomcat.tar到 /root 目录
cd ~
rz
  1. 导入 Docker 镜像
cd /root
docker load -i tomcat.tar
  • 执行完会显示
Loaded image: docker.io/tomcat:latest
  1. 查看所有 Docker 镜像
docker image ls
  • 正常应该能够看到类似以下内容:
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/tomcat    latest              b0e0b0a92cf9        2 days ago          680 MB
  1. 接下来我们将创建一个网页,并让 Docker 的 Tomcat 镜像运行在容器内,并发布该网页到 Tomcat 服务器上。

  2. 创建一个存放网页的目录

mkdir -p /root/test
  1. 创建一个静态的网页,请注意替换为你的学号。
cd /root/test
vi index.html
  • 输入以下内容
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Hello Docker</title>
	</head>
	<body>
	 Hello Docker -by 请替换为你的个人学号
	</body>
</html>
  1. 启动 Docker 的容器,并把容器 8080 端口映射到本机的 8080 端口,本地/root/test映射到容器的/usr/local/tomcat/webapps/test
docker run -d -p 8080:8080 -v /root/test:/usr/local/tomcat/webapps/test tomcat
  1. 浏览器访问http://10.0.0.70:8080/test/index.html,是否能够看到以上编写的网页信息。

  2. 查看 Docker 运行的容器,留意容器的ID(CONTAINER ID)。

docker ps
  • 正常应该能够看到类似以下信息
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
be84ccbed333        tomcat              "catalina.sh run"   31 minutes ago      Up 31 minutes       0.0.0.0:8080->8080/tcp   hardcore_thompson
  1. 终止 Tomcat 容器的运行。
docker stop <替换为上面看到的CONTAINER ID>

注:以上命令的CONTAINER ID可以只输入前面几个字母。

  1. 再次查看 Docker 运行的容器,查看是否已经没有任何容器在运行。
docker ps

【常见问题】

  1. 访问 Tomcat 的页面出现 404 错误。
  • 这有可能是因为SELinux 没有关闭导致的本地目录无法映射到容器内目录。执行以下命令可以临时关闭 SELinux。
setenforce 0
  • 要永久关闭 SELinux可以执行以下语句。
vi /etc/selinux/config
  • SELINUX设置为disabled
SELINUX=disabled

##【常见问题】

1. 启动 Docker 服务出错,提示“dockerd: failed to start daemon: Devices cgroup isn’t mounted”。

答:需要加入 grub 启动参数systemd.unified_cgroup_hierarchy=0

  • (1)重启虚拟机,在菜单选项界面按e进行启动参数编辑。

  • (2)在参数界面进行编辑,可以按方向键到文件最后,加入新的一行,输入 systemd.unified_cgroup_hierarchy=0。(不编辑可以按Esc退出)

  • (3)按下Ctrl+X 启动。

  • (4)在虚拟机重新启动 Docker 进程。

systemctl start docker