Rocky Linux Docker
centos7安装Docker详细步骤(无坑版教程) - 快乐的在一起 - 博客园 (cnblogs.com)
一、Docker
- 卸载旧版本(如果之前安装过的话)
yum remove docker docker-common docker-selinux docker-engine
- 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
- 选择docker版本并安装 (1)查看可用版本有哪些
yum list docker-ce --showduplicates | sort -r
[root@iZwz97q0bkkvyjbpvytc3mZ ~]# yum list docker-ce --showduplicates | sort -r Last metadata expiration check: 0:00:57 ago on Tue 23 Jan 2024 12:19:42 AM CST.
docker-ce.x86_64 3:25.0.0-1.el8 docker-ce-stable
docker-ce.x86_64 3:24.0.7-1.el8 docker-ce-stable
docker-ce.x86_64 3:24.0.6-1.el8 docker-ce-stable
(2)选择一个版本并安装:yum install docker-ce-版本号
yum -y install docker-ce-25.0.0
- 启动 Docker 并设置开机自启
systemctl start docker
systemctl enable docker
二、中文面板
6053537/portainer-ce - Docker Image | Docker Hub
映射到主机9001端口,9000端口已占用
docker run -d --restart=always --name="portainer" -p 9001:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce
三、挂载文件参数具体分析
什么时候需要挂载目录
以下是一些常见的情况,需要将特定类型的目录挂载到容器中:
1.日志目录:
如果您的应用程序生成了日志文件,并且您希望将这些日志文件保存在主机上以便进行后续分析或持久化存储,那么可以将日志目录挂载到容器中。例如:
docker run -v /path/to/logs:/app/logs docker-image
这样,容器内生成的日志文件将会被挂载到主机上的 /path/to/logs
目录中。
2.配置文件目录:
如果您的应用程序使用外部的配置文件,并且您希望能够在容器启动时轻松修改这些配置文件,那么可以将配置文件目录挂载到容器中。这样,在修改配置文件后,无需重新构建镜像即可更新应用程序的配置。例如:
docker run -v /path/to/config:/app/config docker-image
这将容器内的 /app/config
目录与主机上的 /path/to/config
目录进行挂载。
3.数据目录:
对于某些应用程序,可能需要将数据文件持久化存储,并确保在容器重新创建时数据不会丢失。在这种情况下,您可以将数据目录挂载到容器中。例如:
docker run -v /path/to/data:/app/data docker-image
这样,容器内的数据文件将会被挂载到主机上的 /path/to/data
目录中。
需要注意的是,您应该根据自己的具体需求来决定是否需要挂载特定类型的目录。确保在启动容器时正确地指定挂载目录,并将其与主机上的相应目录进行映射,以实现所需的持久化和数据共享。
挂载方法
在 Docker 中,可以使用多种方法来挂载目录到容器中。以下是几种常见的方法及示例:
1.使用 -v参数:
使用 -v
参数来指定要挂载的主机目录和容器目录。
示例:
docker run -d -v /host/path:/container/path image-name
在上述示例中,将主机上的 /host/path
目录挂载到容器内的 /container/path
目录。
2.使用 --mount
参数:
使用 --mount
参数提供更灵活的选项来进行挂载。
示例:
docker run -d --mount type=bind,source=/host/path,target=/container/path image-name
上述示例使用 --mount
参数以绑定类型进行挂载,将主机上的 /host/path
目录挂载到容器内的 /container/path
目录。
3.通过 Docker Compose 文件:
在 Docker Compose 文件中使用 volumes
字段来定义挂载点。
示例:
version: '3'
services:
my-service:
volumes:
- /host/path:/container/path
在上述示例中,my-service
服务将主机上的 /host/path
目录挂载到容器内的 /container/path
目录。
4.使用 Dockerfile 中的 VOLUME
命令:
在 Dockerfile 中使用 VOLUME
命令来指定要挂载的目录。
示例:
VOLUME /container/path
在上述示例中,Dockerfile 指定了要挂载的容器内目录 /container/path
。
5.使用Portainer(-ce)指定挂载目录
适用场景:
1.使用 -v
参数:
这是最简单和常见的挂载方法,适用于在命令行中快速指定挂载点。它适合于临时性的挂载需求或者简单的单个目录挂载。
2.通过 Docker Compose 文件:
如果你使用 Docker Compose 管理多个容器,并希望在配置文件中定义挂载点,那么使用 volumes
字段是一个不错的选择。它提供了更清晰、可维护的方式来管理容器的挂载需求。
3.通过 Dockerfile 中的 VOLUME
命令:
如果你正在构建自定义镜像,并希望将挂载点信息直接包含在镜像的元数据中,那么可以在 Dockerfile 中使用 VOLUME
命令。这样可以确保每次运行容器时都会自动挂载指定的目录。
4.使用 --mount 参数:
--mount
参数提供了更高级和灵活的选项来进行挂载,可以通过添加额外的选项来控制挂载行为,例如设置读写权限、指定文件系统类型等。这种方法适用于需要更精细控制挂载操作的高级场景。
选择适当的挂载方法时,还需要考虑容器化应用的设计原则和最佳实践。例如,将数据卷挂载到容器中可以使数据持久化,并允许容器之间共享数据。对于敏感数据,可能需要加密或使用更安全的挂载选项。
tomcat示例
当使用 Tomcat 容器作为示例,以下是几种详细的方法来挂载目录:
1.使用 -v
参数:
使用 -v
参数来指定要挂载的主机目录和容器目录。
示例:
docker run -d -v /host/app:/usr/local/tomcat/webapps/myapp tomcat:latest
在上述示例中,将主机上的 /host/app
目录挂载到 Tomcat 容器内的 /usr/local/tomcat/webapps/myapp
目录。这将使得容器可以访问并加载该目录下的应用程序。
2.通过 Docker Compose 文件:
在 Docker Compose 文件中使用 volumes
字段来定义挂载点。
示例:
version: '3'
services:
myapp:
image: tomcat:latest
volumes:
- /host/app:/usr/local/tomcat/webapps/myapp
在上述示例中,使用 Docker Compose 文件定义了名为 myapp
的服务,并将主机上的 /host/app
目录挂载到 Tomcat 容器内的 /usr/local/tomcat/webapps/myapp
目录。
3.通过 Dockerfile 中的 VOLUME
命令:
在 Dockerfile 中使用 VOLUME
命令可以指定要挂载的目录。这样,在运行容器时,可以使用 -v
参数将主机上的目录与该容器内的指定目录关联起来。
以下是在 Dockerfile 中使用 VOLUME
命令的示例:
FROM tomcat:latest
VOLUME /usr/local/tomcat/webapps/myapp
在上述示例中,Dockerfile 指定了要挂载的容器内目录 /usr/local/tomcat/webapps/myapp
。当使用该镜像构建容器时,可以通过 -v
参数将主机上的目录与该目录关联起来。
示例命令:
docker build -t my-tomcat .
docker run -d -v /host/app:/usr/local/tomcat/webapps/myapp my-tomcat
在上面的示例中,首先使用 docker build
命令基于 Dockerfile 构建名为 my-tomcat
的镜像。然后,使用 docker run
命令在容器启动时将主机上的 /host/app
目录与容器内的 /usr/local/tomcat/webapps/myapp
目录进行挂载。
通过使用 VOLUME
命令,可以在 Dockerfile 中定义需要挂载的目录,并在运行容器时更方便地进行目录挂载操作。
四、常用命令
查看所有容器: docker ps
打开一个终端: docker exec -it my_container /bin/bash
本文系作者 @ATRAY 原创发布在ATRAY站点。未经许可,禁止转载。
暂无评论数据