Docker从入门到放弃

看完我这里,就彻底入门了,如果对你有帮助,欢迎点赞+收藏❤️+评论噢~
按部就班,先安装..

安装Docker

在CentOS 7上安装Docker主要涉及添加Docker的官方仓库,然后从该仓库安装Docker CE(社区版)

1.安装所需的包:yum-utils提供yum-config-manager工具,而device-mapper-persistent-datalvm2devicemapper存储驱动的依赖包。

bash 复制代码
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加Docker仓库:将Docker的官方仓库添加到YUM源中。

bash 复制代码
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3.安装Docker CE:从刚添加的仓库中安装Docker CE。

bash 复制代码
sudo yum install -y docker-ce docker-ce-cli containerd.io

4.启动Docker服务:安装完成后,启动Docker守护进程。

bash 复制代码
sudo systemctl start docker

5.设置Docker开机自启:为了在系统启动时自动启动Docker服务,需要启用其自启动。

bash 复制代码
sudo systemctl enable docker

6.验证安装:通过运行hello-world容器来验证Docker是否正确安装。

bash 复制代码
sudo docker run hello-world

这个命令会从Docker Hub拉取一个测试镜像并运行,如果看到欢迎消息,则表明Docker已经正确安装和配置。

常用命令

这里开始入门..

基础命令

bash 复制代码
- 查看Docker版本信息
docker --version

显示Docker客户端和服务端的版本信息。

bash 复制代码
- 获取Docker系统的信息
docker info

显示Docker安装的详细信息,包括容器和镜像的数量等。

镜像相关命令

bash 复制代码
- 搜索镜像
docker search <image-name>

在Docker Hub上搜索公共镜像。

bash 复制代码
- 拉取镜像
docker pull <image-name>

从Docker Hub或其他镜像仓库下载一个镜像。

bash 复制代码
- 列出镜像
docker images

列出本地已有的镜像。

bash 复制代码
- 构建镜像
docker build -t <tag-name> .

根据当前目录下的Dockerfile构建镜像,-t用于给新镜像设置标签。

bash 复制代码
- 删除镜像

docker rmi <image-id>

删除指定的本地镜像。

容器相关命令

bash 复制代码
- 创建并启动容器
docker run [options] <image-name>

创建并启动一个容器。常用选项包括-d(后台运行)、-p(端口映射)、--name(指定容器名称)等。

启动容器全参示例

下面是一个docker run命令示例,其中包含了一系列参数,并附上了注释说明。这个示例旨在启动一个Java应用的Docker容器,同时对JVM进行了一系列的配置:

bash 复制代码
docker run \
  -d \ # 在后台运行容器
  --name my-java-app \ # 为容器指定一个名称
  -p 8080:8080 \ # 将宿主机的8080端口映射到容器的8080端口
  -v /my/local/path:/container/path \ # 将宿主机的/my/local/path目录挂载到容器的/container/path
  -e JAVA_OPTS="-server -Xmn500m -Xms1500m -Xmx1500m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSCompactAtFullCollection -XX:+CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Xloggc:/path/to/gc.log" \ # 设置环境变量,用于配置JVM选项
  my-java-image \ # 使用的镜像名称
  sh -c 'java $JAVA_OPTS -jar /path/to/your-app.jar'

参数解释:

  • -d:以detached模式运行Docker容器,即容器在后台运行。
  • --name:为你运行的容器设置一个名字,便于后续的管理和引用。
  • -p:端口映射,格式为宿主机端口:容器端口。这里将容器的8080端口映射到宿主机的同一端口。
  • -v:卷挂载,格式为宿主机路径:容器内路径。用于数据持久化或目录内容共享。
  • -e:设置环境变量。这里使用JAVA_OPTS环境变量来传递JVM的配置参数。
  • java -jar /path/to/your-app.jar $JAVA_OPTS:容器启动后执行的命令。这条命令启动了Java应用,同时将JAVA_OPTS环境变量中定义的JVM参数传递给了Java虚拟机。
    请注意,上述命令中的一些选项(如内存配置、GC日志路径等)需要根据你的实际应用需求进行调整。此外,-v和-e中的路径或变量值也应根据实际情况进行修改。
bash 复制代码
- 列出容器
docker ps [options]

列出容器。不带任何选项时,默认只显示正在运行的容器;-a选项显示所有容器,包括未运行的。

bash 复制代码
- 停止容器
docker stop <container-id or name>

停止一个运行中的容器。

bash 复制代码
- 启动容器
docker start <container-id or name>

启动一个已停止的容器。

bash 复制代码
- 重启容器
docker restart <container-id or name>

重启容器。

bash 复制代码
- 删除容器
docker rm <container-id or name>

删除一个已停止的容器。使用-f选项可以强制删除正在运行的容器。

bash 复制代码
- 查看容器日志
docker logs <container-id or name>

查看容器的输出日志。

bash 复制代码
- 进入运行中的容器
docker exec -it <container-id or name> /bin/bash

使用交互式终端进入正在运行的容器中。对于基于Alpine Linux的镜像,可能需要使用/bin/sh。

网络相关命令

bash 复制代码
- 列出网络
docker network ls

列出Docker管理的所有网络。

bash 复制代码
- 创建网络
docker network create <network-name>

创建一个新的Docker网络。

bash 复制代码
- 连接容器到网络
docker network connect <network-name> <container-id or name>

将一个运行中的容器连接到一个网络。

bash 复制代码
- 断开容器与网络的连接
docker network disconnect <network-name> <container-id or name>

将容器从网络中断开。

数据卷和持久化数据

bash 复制代码
- 创建数据卷
docker volume create <volume-name>

创建一个新的数据卷,用于持久化或共享数据。

bash 复制代码
- 列出数据卷
docker volume ls

列出所有的数据卷。

bash 复制代码
- 删除数据卷
docker volume rm <volume-name>

删除指定的数据卷。
到此..这里开始放弃..

这些命令覆盖了Docker的基本使用场景,包括镜像管理、容器生命周期管理、网络配置和数据持久化。理解和熟练运用这些命令,将帮助你高效地使用Docker。

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤...

相关推荐
donoot11 小时前
一次 Nginx 502 问题的深度排查:从 SELinux 到容器网络
nginx·docker·selinux·反向代理·502 bad gateway
Sagittarius_A*13 小时前
Docker:渗透前置容器化核心基础
运维·安全·docker·容器
吠品14 小时前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
名字还没想好☜15 小时前
Docker 多阶段构建:把镜像从 1.2GB 砍到 15MB
运维·docker·容器·多阶段构建·镜像优化
花和满楼16 小时前
K8s 1.36 ImageVolume GA:OCI 镜像不再只能跑容器
java·容器·kubernetes
生活爱好者!17 小时前
NAS还能玩游戏?部署一款 WebGL 3D 赛车小游戏
游戏·docker·容器·玩游戏
曦月合一17 小时前
本地电脑部署docker,及各种组件(nginx、mysql、redis、mongo、minio、java)
docker·windows10 专业版
hj28625118 小时前
Docker 核心知识点整理(网络 + Dockerfile + 原理 + 命令)
网络·docker·容器
梦想的颜色1 天前
【Docker原理】Docker 容器一文打尽:生命周期、环境管控、迁移备份、日志进程排查、垃圾清理
运维·docker·容器·容器生命周期·容器日志排查·容器迁移备份·容器进程管理
万里侯1 天前
GitOps 漂移检测:集群里改了配置,Git 还以为一切正常
微服务·容器·k8s