一、自定义镜像镜像和容器的区别二、实践练手1.创建基于ubuntu的自定义镜像,并安装nginx2.配置Redis容器3.配置MySQL4.配置CentOS镜像
一、自定义镜像
Docker是一种流行的容器化平台,它可以帮助开发人员将应用程序及其依赖项打包到一个独立的容器中。这样的容器可以在不同的环境中轻松部署和运行,确保应用程序的可移植性和一致性。
首先,创建一个空的文件夹,并在其中创建一个名为Dockerfile的文件。打开Dockerfile,并添加以下内容作为基本的模板:
# 使用基础镜像作为起点 FROM base_image # 添加/复制文件到镜像中 COPY source destination # 执行命令来安装依赖项 RUN command
在上述中,将base_image替换为您选择的基础镜像,source和destination替换为要复制的文件或目录的路径,以及command替换为要执行的命令。接下来,根据自己的需求添加更多的指令。使用RUN指令来安装软件包、更新系统等。使用ENV指令来设置环境变量,使用EXPOSE指令来声明容器要监听的端口号等。
完成Dockerfile后,可以使用以下命令来构建自定义镜像:
docker build -t image_name .
其中,-t选项用于指定镜像的名称和标签,.表示Dockerfile所在的当前目录。构建完成后,使用以下命令来查看已构建的镜像列表:
docker images
镜像和容器的区别
Docker镜像由一系列只读的镜像层组成,每个镜像层都包含了一个或多个文件系统的更改。这些更改可以是添加、删除或修改文件。镜像层是层叠的,每个层都构建在前一个层之上。这种层级结构使得镜像的复用和共享变得更加高效。
当使用镜像创建容器时,Docker会在镜像层之上创建一个可写的容器层。容器层允许在运行时对文件系统进行更改,例如添加、修改或删除文件。这些更改只会影响到容器层,而不会改变原始的镜像层。这种分层结构可以实现容器的轻量级和快速启动。
二、实践练手
可以在Linux系统中使用Docker轻松地拉取、配置和运行Redis、MySQL和CentOS镜像。Docker提供了一个方便和可移植的方式来部署和运行各种服务和应用程序,确保了应用程序的可移植性和一致性。
1.创建基于ubuntu的自定义镜像,并安装nginx
# 使用基础镜像作为起点 FROM ubuntu:latest # 更新apt源并安装Nginx RUN apt-get update && apt-get install -y nginx # 暴露80端口 EXPOSE 80 # 启动Nginx服务 CMD ["nginx", "-g", "daemon off;"]
在包含Dockerfile的目录中,使用以下命令构建镜像
docker build -t my-nginx .
这将根据Dockerfile构建一个名为my-nginx的镜像。构建完成后,可以使用以下命令运行镜像:
docker run -d -p 80:80 my-nginx
在后台运行一个基于my-nginx镜像的容器,并将宿主机的80端口映射到容器的80端口。在浏览器中访问http://localhost来查看Nginx欢迎页面。
2.配置Redis容器
确保已经在Linux系统上安装了Docker。可以使用以下命令来检查Docker是否已经安装:
docker version
从Docker Hub上拉取Redis镜像
docker pull redis
使用以下命令来运行Redis容器:将在后台运行一个名为my-redis的Redis容器,并将宿主机的6379端口映射到容器的6379端口。
docker run -d --name my-redis -p 6379:6379 redis
使用Redis客户端连接到Redis容器。例如,使用以下命令连接到Redis容器:
redis-cli -h localhost -p 6379
3.配置MySQL
使用以下命令从Docker Hub上拉取MySQL镜像:
docker pull mysql
使用以下命令来运行MySQL容器:
docker run -d --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql
将在后台运行一个名为my-mysql的MySQL容器,并将宿主机的3306端口映射到容器的3306端口。通过-e选项指定了MySQL的root用户密码为password。 使用MySQL客户端连接到MySQL容器。例如,使用以下命令连接到MySQL容器:
mysql -h localhost -P 3306 -u root -p
输入之前设置的密码即可成功连接到MySQL容器。
4.配置CentOS镜像
使用以下命令从Docker Hub上拉取CentOS镜像:
docker pull centos
使用以下命令来运行CentOS容器:
docker run -it --name my-centos centos
将在交互模式下运行一个名为my-centos的CentOS容器。可以在CentOS容器中执行各种操作和命令。例如,安装软件包、修改配置文件等。
# 在容器中安装软件包 yum install <package-name> # 修改配置文件 vi <path-to-file>
在完成所需的操作后,您可以使用以下命令退出并停止CentOS容器:
exit docker stop my-centos