Docker基本命令

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS AI 助手,专业版
简介: Docker基本命令整理

 

服务相关命令

#查看docker状态
systemctl status docker

#启动docker
systemctl start docker
#重启
systemctl restart docker

#设置开机自启动
systemctl enable docker

镜像相关命令

#查看镜像  - 本地的
docker images
#搜索镜像  - 搜索远程的
docker search redis
#拉取镜像 - 从远程下载  docker pull redis:tag  tag指定版本号
docker pull redis
#删除镜像 - 删除本地的  docker rmi ImageID  ImageID指定镜像ID
docker rmi d0f3d9fe7db7

#删除所有镜像
docker rmi `docker images -q`

注意:删除镜像,正在运行的镜像,无法删除

docker images 查看所有本地主机上的镜像

[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
tomcat        8.5       1b9b129f7bca   6 hours ago    679MB
mysql         5.6       dd3b2a5dcb48   4 months ago   303MB
hello-world   latest    feb5d9fea6a5   7 months ago   13.3kB

#解释
REPOSITORY  镜像的仓库源
TAG        镜像的标签
IMAGE ID    镜像的Id
CREATED    镜像的创建时间
SIZE        镜像的文件大小

#可选项
-a  --all  #列出所有镜像
-q  --quiet  #只显示镜像的ID

docker search搜索

[root@localhost ~]# docker search mysql
NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                          MySQL is a widely used, open-source relation…   12554     [OK]      
mariadb                        MariaDB Server is a high performing open sou…   4825      [OK]    

#可选项
-- filter=STARS=3000  #搜索出来的镜像就是STARS大于3000的
[root@localhost ~]# docker search mysql --filter=STARS=3000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql     MySQL is a widely used, open-source relation…   12554     [OK]      
mariadb   MariaDB Server is a high performing open sou…   4825      [OK]  

容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学士

docker pull centos

新建容器并启动

docker run[可选参数] image

#参数说明
--name="Name"  容器的名字  tomcat01  tomcat02,用来区分容器
-d            后台方式运行
-it          使用交互方式运行,进入容器查看内容
-p            指定容器的端口 -p 8080:8080
   -p ip:主机端口:容器端口
   -p   主机端口:容器端口(常用)
   -p    容器端口
   容器端口
-p      随机指定端口


#测试启动并进入容器
[root@localhost ~]# docker run -it tomcat /bin/bash
root@fb65bdba861f:/usr/local/tomcat# ls  查询容器内的tomcat
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@fb65bdba861f:/usr/local/tomcat#

列出所有的运行容器

#docker ps 命令
   #列出当前正在运行的容器
-a  #列出当前正在运行的容器+带出历史运行过的容器
-n  #最佳创建的容器
-q  #只显示容器的编码
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND             CREATED          STATUS                        PORTS                                       NAMES
fb65bdba861f   tomcat        "/bin/bash"         2 minutes ago    Exited (0) 43 seconds ago                                                 zen_montalcini
c5c85bca5639   tomcat        "catalina.sh run"   13 minutes ago   Exited (143) 12 minutes ago                                               tomcat8.5
5616fdb3fddf   tomcat:8.5    "catalina.sh run"   3 hours ago      Exited (255) 34 minutes ago   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   tomcat
1b800b242e98   hello-world   "/hello"
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

退出容器

exit  #直接容器退出+停止
Ctrl+P+Q  #容器不停止退出

删除容器

docker rm 容器id   #删除指定容器,不能删除正在运行的容器,如果要强制删除  rm -f
docker rm -f $(docker ps -aq)  #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器

停止容器的操作

docker start 容器id  #启动容器
docker restart 容器id  #重启容器
docker stop 容器id    #停止当前正在运行的容器
docker kill 容器id    #强制停止当前容器

常用其他命令

查看日志

docker logs -fft --tail 10 容器  没有日志
#自己编写一段shell脚本
[root@kuangshen /]# docker run -d centos /bin/sh -c "while true;do echo kuangshen;sleep 1; done"

# [root@kuangshen /]# docker ps
CONTAINER ID IMAGE
dce7b86171bf centos
#显示日志
-tf
#显示日志
--tail number#要显示日志条数
[root@kuangshen /]# docker logs -tf --tail 10 dce7b86171bf

查看容器中进程信息

#命令 docker top 容器id
[root@localhost ~]# docker top 5ab76fc61511
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                8602                8582                7                   15:58               ?                   00:00:01            /usr/local/openjdk-11/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
       

查看镜像元数据

#命令 docker inspect 容器id
[root@localhost ~]# docker inspect 5ab76fc61511
[
   {
       "Id": "5ab76fc615110ffb5dfe188ff9258998e8f21eb117192349c32c94050e579095",
       "Created": "2022-05-12T07:58:46.314489117Z",
       "Path": "catalina.sh",
       "Args": [
           "run"
       ],
       "State": {
           "Status": "running",
           "Running": true,
           "Paused": false,
           "Restarting": false,
           "OOMKilled": false,
           "Dead": false,
           "Pid": 8602,
           "ExitCode": 0,
           "Error": "",
           "StartedAt": "2022-05-12T07:58:46.76464332Z",
           "FinishedAt": "0001-01-01T00:00:00Z"
       },...........

进入当前正在运行的容器

#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

#命令
docker exec -it 容器id /bin/bash

#测试
[root@localhost ~]# docker exec -it 5ab76fc61511 /bin/bash
root@5ab76fc61511:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@5ab76fc61511:/usr/local/tomcat# ps -if
error: unsupported SysV option

Usage:
ps [options]

Try 'ps --help <simple|list|output|threads|misc|all>'
 or 'ps --help <s|l|o|t|m|a>'
for additional help text.

For more details see ps(1).

#方式二
docker attach  容器id
#测试
[root@localhost ~]# docker attach 5ab76fc61511
正在执行当前代码。。。。

#docker exec   #进入容器后开启一个新的终端 可以在里面操作(常用)
#docker attach  #进入容器正在执行的终端,不会启动新的进程

从容器内容拷贝文件到主机上

#进入容器内部
[root@localhost ~]# docker exec -it 35a549f10a4b /bin/bash
root@35a549f10a4b:/usr/local/tomcat# ls
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  bin  conf  lib  logs  native-jni-lib  temp  webapps  webapps.dist  work
root@35a549f10a4b:/usr/local/tomcat# cd /home
root@35a549f10a4b:/home# ls
#新建一个antler.java文件
root@35a549f10a4b:/home# touch antler.java
root@35a549f10a4b:/home# ls
antler.java
#退出
root@35a549f10a4b:/home# exit
exit
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE        COMMAND             CREATED              STATUS              PORTS                                       NAMES
35a549f10a4b   tomcat:8.5   "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   tomcat
#命令
docker cp 容器id:/文件绝对路径 要赋值的位置
#将容器内文件拷贝到主机
[root@localhost ~]# docker cp 35a549f10a4b:/home/antler.java /home
[root@localhost ~]# ls /home
antler.java  damo  java  mysql  tomcat  xiaodengfeng

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
8月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
865 124
|
11月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3598 75
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
1365 57
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
2233 30
|
11月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
3302 0
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
259 22
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
382 16
|
关系型数据库 MySQL Docker
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
574 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
811 4

热门文章

最新文章