前言
Docker 是一种用于开发、组装和部署应用程序的开源容器化平台,它可以在不同的操作系统上运行应用程序,并具有轻量、可移植、可靠、高效等优点。本文将介绍如何在 CentOS 环境下操作 Docker 容器。
1. 安装 Docker
在 CentOS 系统上安装 Docker 很简单,只需执行以下命令即可:
sudo yum install docker
如果以上命令无法正确执行,可以使用以下命令更新系统软件包:
sudo yum update
安装完成后,可以使用以下命令检查 Docker 版本:
docker --version
如果出现类似输出,则说明安装成功:
Docker version 20.10.8, build 3967b7d
2. 创建 Docker 镜像
Docker 镜像是 Docker 容器的基础,每个镜像都是由一个或多个文件系统层构成,可以使用 Dockerfile 来创建。
2.1 创建 Dockerfile
在本地创建一个新的目录,并创建一个名为 Dockerfile
的文件,该文件将描述 Docker 镜像应该执行哪些操作来生成镜像:
mkdir myimage && cd myimage touch Dockerfile
编辑 Dockerfile
文件并添加以下内容:
FROM centos RUN yum -y update && yum clean all RUN yum -y install httpd ADD index.html /var/www/html/ EXPOSE 80 CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
以上 Dockerfile
文件的内容含义为:
FROM centos
指定了我们所需要的基础镜像。RUN yum -y update && yum clean all
更新系统软件包并清理下载的软件包缓存。RUN yum -y install httpd
安装 Apache httpd 服务器。ADD index.html /var/www/html/
将当前目录下的index.html
文件复制到镜像的/var/www/html/
目录下。EXPOSE 80
定义容器运行时监听的端口。CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
指定容器运行时的默认命令。
2.2 创建 Docker 镜像
在创建 Dockerfile
文件并描述了需要执行的操作后,需要使用 docker build
命令创建新的 Docker 镜像。使用以下命令创建新的 myimage
镜像:
docker build -t myimage .
其中,-t
参数用来为新的 Docker 镜像指定一个名称,.
表示 Dockerfile 文件所在的路径。该命令将从 Dockerfile 文件中读取指令并创建一个新的 Docker 镜像。
3. 运行 Docker 容器
在成功创建了 Docker 镜像之后,就可以使用以下命令启动一个新的 Docker 容器:
docker run -p 80:80 -d myimage
其中,-p
参数用来指定容器内部的端口映射到主机的端口,-d
参数用来指定在后台运行容器。该命令将启动一个新的 Docker 容器,并在后台运行。此时使用以下命令可以检查容器是否在运行:
docker ps
如果容器正在运行,则将看到类似以下的输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0816602bfd0a myimage "/usr/sbin/httpd -D …" 5 seconds ago Up 4 seconds 0.0.0.0:80->80/tcp inspiring_swirles
4. 访问 Docker 容器服务
在容器成功运行后,可以通过浏览器访问该服务器的 Web 服务。在浏览器中输入 http://localhost
,将看到类似以下内容的页面:
Hello, Docker!
以上页面为在 Dockerfile
文件中添加的 index.html
文件所渲染的内容。至此,已经成功在 CentOS 环境下操作了 Docker 容器。
总结
本文介绍了在 CentOS 环境下操作 Docker 容器的详细步骤。其中包括安装 Docker,创建 Docker 镜像,启动 Docker 容器,并访问 Docker 容器服务。Docker 是一种十分优秀的轻量级容器化平台,具有可靠、可移植、高效等优点,尤其适用于前端开发、组装和部署应用程序。希望读者通过本文的学习和实践,能够更好地掌握 Docker 容器的操作规范和实践流程。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652a39f37d4982a6ebc8fdd1