Docker常用命令

it2025-03-02  24

Docker常用命令

docker version #显示docker的版本信息 docker info #显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help #帮助命令

镜像命令

#1、查看所有本地主机上的镜像 docker images [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE zookeeper 3.4.14 721354d41dae 7 days ago 257MB redis latest bd571e6529f3 7 days ago 104MB mysql 5.7 42cdba9f1b08 8 days ago 448MB centos latest 0d120b6ccaa8 2 months ago 215MB store/elastic/filebeat 6.8.9 b44b5f67db90 5 months ago 281MB flink 1.10.0-scala_2.11 2585924d4457 6 months ago 598MB hello-world latest bf756fb1ae65 9 months ago 13.3kB kibana 6.8.4 e7c11052ed4f 12 months ago 817MB elasticsearch 6.8.4 25476914cc66 12 months ago 955MB wurstmeister/kafka 2.12-2.2.0 c364cbed5b86 18 months ago 421MB #解释 REPOSITORY #镜像的仓库源 TAG #镜像的标签 IMAGE ID #镜像的ID CREATED #镜像的创建时间 SIZE #镜像的大小 #可选项(添加在images后面) -a, --all #列出所有镜像 -q, --quiet #只显示镜像的ID [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker images -q 721354d41dae bd571e6529f3 42cdba9f1b08 0d120b6ccaa8 b44b5f67db90 2585924d4457 bf756fb1ae65 e7c11052ed4f 25476914cc66 c364cbed5b86 #2、搜索镜像 docker search mysql #搜索mysql镜像 [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10084 [OK] mariadb MariaDB is a community-developed fork of MyS… 3696 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 737 [OK] percona Percona Server is a fork of the MySQL relati… 511 [OK] centos/mysql-57-centos7 MySQL 5.7 SQL database server 83 mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr… 77 centurylink/mysql Image containing mysql. Optimized to be link… 60 [OK] 。。。。。 #可选项(添加在mysql后面) --filter=STARS=3000 #会去找收藏数大于3000的镜像 [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker search mysql --filter=STARS=3000 NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10084 [OK] mariadb MariaDB is a community-developed fork of MyS… 3696 [OK] #3、下载镜像 docker pull 镜像名[:tag] #tag是版本(注意是docker hub中有的), 不写的话默认是latest #4、删除镜像 docker rmi -f IMAGE ID #删除指定的容器 docker rmi -f IMAGE ID IMAGE ID IMAGE ID #删除多个容器 docker rmi -f $(docker images -aq) #删除全部的容器

容器命令

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

docker pull centos [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker pull centos Using default tag: latest latest: Pulling from library/centos Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd Status: Image is up to date for centos:latest docker.io/library/centos:latest #1、启动容器 docker run [可选参数] image [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker run -it --name testCentos centos /bin/bash [root@f51600bdebc0 /]# #参数说明 --name Name #容器名字 用来区分容器 -d #后台方式运行 -it #使用交互方式运行,进入容器查看内容 -p #指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 容器端口 -P #随机指定端口 #2、测试,启动并进入容器 docker run -it centos /bin/bash #/bin/bash是linux下的控制台位置 然后root旁边的东西会变成镜像的ID #[root@f51600bdebc0 /]# #3、从容器中退回主机 exit [root@f51600bdebc0 /]# exit exit #4、列出所有运行的容器 docker ps [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS MES 3d93cd8f91a4 42cdba9f1b08 "docker-entrypoint.s…" 5 days ago Up 5 days 3306/tcp, 33060/nderful_pascal 304010b547f4 centos "/bin/bash" 6 days ago Up 6 days ntos02 e2ce4f39344b centos "/bin/bash" 6 days ago Up 6 days ntos01 4f7674333b67 centos "/bin/bash" 6 days ago Up 6 days #可选项(添加在ps后面)#列出当前正在运行的容器 -a #列出当前正在运行的容器+未运行的容器(被删除的容器将不再显示) -n=? #显示最近创建的容器 -q #只显示容器的编号 [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps -q 304010b547f4 e2ce4f39344b 4f7674333b67 d89d299fd40b #5、退出容器 exit #直接容器停止并退出 Ctrl + P + Q #容器不停止退出 [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker exec -it testCentos /bin/bash [root@f51600bdebc0 /]# read escape sequence # 然后按了 Ctrl + P + Q [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f51600bdebc0 centos "/bin/bash" 6 minutes ago Up About a minute testCentos #6、删除容器 docker rm 容器ID #删除指定的容器,不能删除正在运行的容器 docker rm $(docker ps -aq) #删除所有的容器 #7、启动和停止容器的操作 docker start 容器ID #启动容器 docker restart 容器ID #重启容器 docker stop 容器ID #停止当前正在运行的容器 docker kill 容器ID #强制停止当前容器 [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker start testCentos testCentos [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker stop 3d93cd8f91a4 3d93cd8f91a4

常用其他命令

#1、后台启动容器 docker run -d 镜像名 #问题 docker ps, 发现 centos停止了 #常见的坑, docker容器使用后台运行, 就必须要有一个前台(控制台)进程,docker发现没有应用,就会自动停止 #所以要先载入一个容器并运行bash,再 用Ctrl + P + Q 使容器不停止退出,接着便可以进行别的操作了。 #nginx, 容器启动后, 发现自己没有提供服务, 就会自动停止,就是没有程序了 #2、查看日志 docker logs -f -t --tail 容器ID,(这时没有日志) #所以先自己编写一个shell脚本 docker run -d centos /bin/sh -c "while true;do echo zhuge;sleep 1;done" docker ps #然后会显示出正在运行的容器ID #显示日志 -tf #显示日志 --tail number #要显示日志条数 docker logs -tf --tail 10 容器ID #3、查看容器中进程信息 docker top 容器id [root@iZuf61n8ywv9zx27oeoajoZ ~]# docker top f51600bdebc0 UID PID PPID C STIME TTY TIME CMD root 27387 27370 0 19:34 pts/0 00:00:00 /bin/bash root 27505 27370 0 19:34 ? #4、查看容器的元数据 # 包括挂载目录等等 docker inspect 容器ID #5、进入当前正在运行的容器 #方式一 docker exec -it 容器ID /bin/bash(bashshell) #进入容器后开启一个新的终端,可以在里面操作(常用) #进入容器之后 , 可以使用 cd /etc/文件名 来查看对应容器的配置文件等 [root@iZuf61n8ywv9zx27oeoajoZ /]# docker exec -it 3d93cd8f91a4 /bin/bash root@3d93cd8f91a4:/# cd /etc root@3d93cd8f91a4:/etc# ls X11 debian_version group- issue localtime mtab passwd- rc4.d selinux systemd adduser.conf default gshadow issue.net logcheck mysql perl rc5.d shadow terminfo 。。。。 #方式二 docker attach 容器ID #进入容器正在执行的终端, 不会启动新的进程! #6、从容器内拷贝文件到主机上 docker cp 容器ID:容器内路径 目的主机路径 #注:要退出容器后再操作
最新回复(0)