Linux下Docker的安装和常用命令大全
2022-02-25在 CentOS 上安装 Docker 引擎
卸载旧版本
旧版本的 Docker 被称为docker或docker-engine. 如果安装了这些,请卸载它们以及相关的依赖项
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装最新版本
sudo yum install docker-ce docker-ce-cli containerd.io
要安装特定版本的 Docker Engine,列出并排序您的存储库中可用的版本。此示例按版本号从最高到最低对结果进行排序,并被截断:
yum list docker-ce --showduplicates | sort -r
启动 Docker
sudo systemctl start docker
验证
sudo docker run hello-world
设置开机启动
systemctl enable docker
Docker常用命令
docker version
docker info
docker --help
镜像命令
列出本地主机上的镜像名
Docker images
从dockerhub上搜索镜像
Docker search 镜像名
下载镜像
docker pull 镜像名
删除镜像
docker rmi 镜像名ID
容器命令
前提:有镜像才能创建容器
新建并启动容器
docker run [OPTIONS] IMAGE [Command] 参数
[OPTIONS]说明:
--name=“容器名”:为容器指定一个名称;
-d:后台运行容器。并返回容器ID(即启动守护式容器);
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端
-P:随机端口映射
-p:指定端口映射,有四种格式 [ip:hostPort:containerPort; ip::containerPort; hostPort:containerPort; containerPort]
列出当前所有正在运行的容器
docker ps [OPTIONS]
[OPTIONS]说明:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-trunc:不截断输出
查看docker容器使用资源
默认输出
docker stats
默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。
下面是输出的主要内容:
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号
只返回当前状态
docker stats --no-stream
只输出指定的容器
docker stats --no-stream registry 1999
注意:这里的 registry 和 1999 分别是容器的名称和容器的 ID。多个容器的名称或者是 ID 之间需要用空格进行分割。
退出容器
exit:容器停止退出
Ctrl+P+Q:容器不停止退出
启动容器
docker start ContainerID
重启容器
docker restart ContainerID
停止容器
docker stop ContainerID
强制停止容器
docker kill ContainerID
删除已停止的容器
删除单个容器:
docker rm ContainerID
删除多个容器
docker rm -f$(docker ps -a -q)
docker ps -a -q | xargs docker rm
启动守护式容器:
docker run -d ContainerID
使用以下命令创建一个以进程方式运行的容器 创建成功会返回长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。
首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED:容器的创建时间。
STATUS:容器状态(状态有7种):
created(已创建)
restarting(重启中)
running(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES:自动分配的容器名称。
查看容器日志:
docker logs -f -t --tail 数字 ContainerID
-t:加入时间戳
-f:跟随最新的日志打印
--tail 数字:显示最后多少条
查看容器内运行的进程:
docker top ContainerID
查看容器内部细节:
docker inspect ContainerID
进入正在运行的容器并以命令行交互:
docker exec -it ContainerID /bin/bash
docker attach ContainerID
上述两个区别:
attach:直接进入容器启动命令的终端,不会启动新的进程(不做任何操作)
exec:是在容器中打开新的终端,并且可以启动新的进程(可以做操作,返回结果)
从容器内拷贝文件到主机上
docker cp ContainerID:ContainerPath 宿主机Path
参考
https://www.cnblogs.com/Can-daydayup/p/15559341.html