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。

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

相关推荐
唐大爹2 小时前
项目实战:k8s部署考试系统
云原生·容器·kubernetes
wusam2 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)
学习·docker·centos
wusam5 小时前
螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
运维·服务器·网络·docker·容器
一直在进步的派大星6 小时前
Docker 从安装到实战
java·运维·docker·微服务·容器
Zl1597531597539 小时前
k8s基础环境部署
云原生·容器·kubernetes
陌殇殇殇11 小时前
使用GitLab CI构建持续集成案例
运维·ci/cd·云原生·容器·kubernetes·gitlab
技术钱11 小时前
docker简介
运维·docker·容器
roman_日积跬步-终至千里11 小时前
【docker】docker常见命令
运维·docker·容器
tangdou36909865516 小时前
Docker系列-超级详细教你Linux安装并使用docker compose,如何使用docker-compose安装sqlserver
docker·容器·sql server
tangdou36909865516 小时前
手把手非常详细图文并茂教你 Docker 部署 SQL Server
docker·容器·sql server