news 2026/4/3 3:06:24

Docker基本命令汇总

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Docker基本命令汇总

Docker的三大核心概念:镜像、容器、仓库

镜像:类似虚拟机的镜像、用俗话说就是安装文件。

容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动、开始、停止、删除、而这些容器都是相互隔离、互不可见的。

仓库:类似代码仓库,是Docker集中存放镜像文件的场所。

1.设置docker自启动

使用yum安装好docker后,设置开机启动。

[root@CentOS ~]# systemctl enable docker

2.docker的启动、停止、重启

[root@localhost ~]# service docker restart Redirecting to /bin/systemctl restart docker.service [root@localhost ~]# service docker stop Redirecting to /bin/systemctl stop docker.service [root@localhost ~]# service docker start Redirecting to /bin/systemctl start docker.service

3.docker镜像

docker search <image>用于搜索线上镜像仓库,这样就可以搜索出在Docker Hub上所有带redis的公共的可用镜像。

[root@CentOS ~]# docker search redis INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/redis Redis is an open source key-value store th... 5472 [OK] docker.io docker.io/bitnami/redis Bitnami Redis Docker Image 82 [OK] docker.io docker.io/sameersbn/redis 68 [OK] docker.io docker.io/tenstartups/redis-commander 32 [OK] docker.io docker.io/hypriot/rpi-redis Raspberry Pi compatible redis image 31 docker.io docker.io/kubeguide/redis-master redis-master with "Hello World!" 25 docker.io docker.io/kubeguide/guestbook-redis-slave Guestbook redis slave 20 docker.io docker.io/redislabs/redis Clustered in-memory database engine compat... 15 docker.io docker.io/webhippie/redis Docker images for redis 9 [OK] docker.io docker.io/arm32v7/redis Redis is an open source key-value store th... 7 docker.io docker.io/rediscommander/redis-commander Alpine image for redis-commander - Redis m... 7 [OK] docker.io docker.io/oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Su... 5 docker.io docker.io/rtoma/logspout-redis-logstash Logspout including Redis adapter for sendi... 5 docker.io docker.io/centos/redis-32-centos7 Redis in-memory data structure store, used... 3 docker.io docker.io/dynomitedb/redis Redis backend for DynomiteDB. 2 [OK] ...

docker pull <image>拉取服务器镜像仓库里的镜像。

[root@CentOS ~]# docker pull redis Using default tag: latest Trying to pull repository docker.io/library/redis ... latest: Pulling from docker.io/library/redis be8881be8156: Pull complete d6f5ea773ca3: Pull complete 735cc65c0db4: Pull complete ff89c30e4d8c: Pull complete 59bf782a86b3: Pull complete ce8aaa9fe90a: Pull complete Digest: sha256:096cff9e6024603decb2915ea3e501c63c5bb241e1b56830a52acfd488873843 Status: Downloaded newer image for docker.io/redis:latest

不指定版本,默认会下载最新的一个版本。由于官方的镜像在国外,有时网速较慢,所以推荐下载国内的镜像,比如阿里云,网易云。

docker push 推送本地镜像到服务器。

查看镜像

docker images:列出images docker images -a:列出所有的images(包含历史) docker images --tree :显示镜像的所有层(layer)(该命令已被docker新版移除) docker rmi <image ID>:删除一个或多个image

4.docker创建一个容器

上面介绍了docker镜像的拉取,我们接下来看下如何创建一个容器。

docker run 命令格式

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -d, --detach=false 指定容器运行于前台还是后台,默认为false -i, --interactive=false 打开STDIN,用于控制台交互 -t, --tty=false 分配tty设备,该可以支持终端登录,默认为false -u, --user="" 指定容器的用户 -a, --attach=[] 标准输入输出流和错误信息(必须是以非docker run -d启动的容器) -w, --workdir="" 指定容器的工作目录 -c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用 -e, --env=[] 指定环境变量,容器中可以使用该环境变量 -m, --memory="" 指定容器的内存上限 -P, --publish-all=false 指定容器暴露的端口 -p, --publish=[] 指定容器暴露的端口 -h, --hostname="" 指定容器的主机名 -v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录 --volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录 --cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities --cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities --cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法 --cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU --device=[] 添加主机设备给容器,相当于设备直通 --dns=[] 指定容器的dns服务器 --dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件 --entrypoint="" 覆盖image的入口点 --env-file=[] 指定环境变量文件,文件格式为每行一个环境变量 --expose=[] 指定容器暴露的端口,即修改镜像的暴露端口 --link=[] 指定容器间的关联,使用其他容器的IP、env等信息 --lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用 --name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 --net="bridge" 容器网络设置: bridge 使用docker daemon指定的网桥 host //容器使用主机的网络 container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源 none 容器使用自己的网络(类似--net=bridge),但是不进行配置 --privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities --restart="no" 指定容器停止后的重启策略: no:容器退出时不重启 on-failure:容器故障退出(返回值非零)时重启 always:容器退出时总是重启 --rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器) --sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

示例:

[root@CentOS ~]# docker run -p 8090:8080 -p 50000:50000 --restart always --link Redis:redis --name jenkins -v /home/jenkins:/home/jenkins_home --privileged=true dokcer.io/jenkins/jenkins

说明:如果需要 command 命令,写在 image(dokcer.io/jenkins/jenkins) 后面。

-p:把容器的8080端口映射到宿主机8090上

-v:主机的目录/home/jenkins映射到容器的目录/home/jenkins_home

--name:给容器起个名字jenkins,docker.io/jenkins/jenkins是你下载的镜像

--restart:always 容器退出时总是重启

--privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法

--link:为redis容器起个别名Redis,访问的时候使用别名Redis

5.查看docker容器

docker ps #查看正在运行的容器

[root@CentOS ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES faa1b0be4e0b docker.io/jenkins/jenkins "/sbin/tini -- /us..." 15 hours ago Up 4 seconds 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins

docker ps -a #查看所有容器

[root@CentOS ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 45af2f4d1f82 docker.io/redis "docker-entrypoint..." 15 hours ago Exited (255) 3 minutes ago 0.0.0.0:6378->6379/tcp redis1 ffa152fb76cc docker.io/redis "docker-entrypoint..." 15 hours ago Exited (255) 3 minutes ago 0.0.0.0:6379->6379/tcp redis faa1b0be4e0b docker.io/jenkins/jenkins "/sbin/tini -- /us..." 15 hours ago Up 2 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins

6.启动、停止、重启、删除docker容器

根据id和name对容器进行操作

#启动容器 docker start <ContainerId(或者name)> #停止容器 docker stop <ContainerId(或者name)> #重启容器 docker restart <ContainerId(或者name)> #删除容器 docker rm <ContainerId(或者name)> #删除所有容器 docker rm $(docker ps -a -q)

7.进入docker容器

#进入容器 docker exec -it containerID /bin/bash #管理员权限进入容器 docker exec -it -u root containerID /bin/bash

ctrl+d 退出容器且关闭

ctrl+p+q 退出容器但不关闭

8.查看容器日志

docker logs -f -t --tail 行数 容器名

[root@CentOS ~]# docker logs -f -t --tail 10 redis #查看容器最后10行日志 2018-08-09T05:55:16.204504000Z 1:C 09 Aug 05:55:16.135 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 2018-08-09T05:55:16.205232000Z 1:C 09 Aug 05:55:16.151 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=1, just started 2018-08-09T05:55:16.205822000Z 1:C 09 Aug 05:55:16.151 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 2018-08-09T05:55:16.206545000Z 1:M 09 Aug 05:55:16.199 * Running mode=standalone, port=6379. 2018-08-09T05:55:16.207152000Z 1:M 09 Aug 05:55:16.200 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 2018-08-09T05:55:16.207713000Z 1:M 09 Aug 05:55:16.200 # Server initialized 2018-08-09T05:55:16.208315000Z 1:M 09 Aug 05:55:16.200 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 2018-08-09T05:55:16.209055000Z 1:M 09 Aug 05:55:16.201 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. 2018-08-09T05:55:16.209806000Z 1:M 09 Aug 05:55:16.201 * DB loaded from disk: 0.000 seconds 2018-08-09T05:55:16.210405000Z 1:M 09 Aug 05:55:16.202 * Ready to accept connections

9.Docker网络操作

#在主机上创建一个网络 docker network create mynet #查看所有网络 docker network ls #查看某个网络详情 docker network inspect mynet #容器连接某一个网络 docker network connect mynet 容器名称或容器ID #容器断开已连接的网络 docker network disconnet mynet 容器名称或容器ID #移除某个网络 docker network rm mynet #移除所有网络 docker network prune

10.Docker拷贝操作

宿主机和容器之间的拷贝操作使用 docker cp 命令,并且无论容器是否启动都生效

# 1.文件从宿主机拷贝到容器: docker cp 宿主机文件路径 容器名:存放路径 docker cp /home/jenkins/test.txt jenkins:/var/jenkins_home # 2.文件从容器拷贝到宿主机 docker cp 容器名:要拷贝的文件路径 宿主机存放路径 docker cp jenkins:/var/jenkins_home/test.txt /home/jenkins

11.Docker镜像重命名

有时打的镜像名字写错了,可以用docker tag命令来修改,然后通过 docker rmi 命令删除原来的镜像。

# SOURCE_IMAGE 原镜像名,TARGET_IMAGE 重命名的名称,TAG 版本号 docker tag SOURCE_IMAGE:TAG TARGET_IMAGE:TAG
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 0:39:01

MCU+AT,必将让位于OpenCPU【第五章】

第五章&#xff1a;典型OpenCPU应用架构 OpenCPU的核心理念是&#xff1a; 让通信模组不仅“能联网”&#xff0c;还“能计算、能看见、能展示、能存储、能决策”。 根据项目复杂度与算力需求&#xff0c;实际应用大致分为三种主流架构。 5.1轻量应用架构&#xff1a;通信内…

作者头像 李华
网站建设 2026/3/31 23:01:27

【收藏级】一文掌握RAG技术:检索增强生成技术的核心原理与实现方法

本文全面解析检索增强生成(RAG)技术&#xff0c;详细介绍了其如何通过结合检索系统和生成模型解决传统语言模型的局限性。文章涵盖了RAG的核心组件(检索机制、生成过程、知识整合)、关键步骤(从用户意图理解到知识引用)以及高级RAG方法(训练优化、多模态处理、记忆增强等)&…

作者头像 李华
网站建设 2026/3/24 14:22:53

一体化系统(九)智慧社区综合报表——东方仙盟练气期

智慧社区综合报表&#xff1a;开启社区数字化管理新篇章随着科技的飞速发展&#xff0c;智慧社区建设成为提升居民生活质量、优化社区管理效率的重要途径。智慧社区综合报表作为其中的关键一环&#xff0c;以直观的数据展示和深入的分析&#xff0c;为社区管理提供了有力支持。…

作者头像 李华
网站建设 2026/4/3 2:25:43

如何解决Netty沾包与半包

在基于 Netty 这类 NIO 框架进行网络通信时&#xff0c;粘包和半包问题是开发者必须面对的基础挑战。本文将通过一个真实的案例&#xff0c;详细介绍如何重现该问题&#xff0c;并深入探讨 Netty 提供的两种高效内置解决方案。一、 问题重现&#xff1a;什么是粘包与半包&#…

作者头像 李华
网站建设 2026/4/2 9:18:23

QM申报流程及要求

一、申报流程&#xff1a;依托企业:QM计划申报需要依托国内工作单位来申报&#xff0c;企业资质、双方匹配程度直接影响入选概率。 二、准备材料:申报人学历证书、工作履历、科研成果与过往业绩等文件&#xff0c;企业端需提供基本信息与荣誉资质证明。 三、填报系统:除了上传以…

作者头像 李华
网站建设 2026/3/31 18:17:31

基于springboot公司公务用车管理系统

基于Spring Boot的公司公务用车管理系统是一种高效、灵活且易于扩展的车辆管理解决方案。以下是对该系统的详细介绍&#xff1a; 一、系统背景与目的 随着公司规模的扩大和公务用车数量的增加&#xff0c;传统的人工管理方法已经难以满足高效、准确的管理需求。因此&#xff0c…

作者头像 李华