Docker:基本命令 Docker的常用命令 帮助命令 1 2 3 docker version docker inf docker 命令 --help
Docker的常用命令 帮助命令 1 2 3 docker version docker inf docker 命令 --help
镜像命令 docker images
查看所有本地的主机上的镜像选项 说明 -a
或 --all
显示所有镜像(默认只显示最终镜像,隐藏中间镜像) -q
或 --quiet
只显示镜像的 ID,不显示其它信息
docker search
搜索镜像选项 作用 -f
或 --filter
根据条件过滤结果,例如 --filter stars=10
只显示点赞数大于 10 的镜像 --format
使用 Go 模板美化输出结果,例如输出成表格或 JSON --limit
设置最大返回条数,比如 --limit 5
最多返回 5 个镜像 --no-trunc
不截断输出(比如镜像描述不会被省略)
docker pull 镜像名[:tag]
下载镜像^55fc23
选项 说明 -a
, --all-tags
拉取仓库中所有 tag 的镜像,docker pull mysql:5.7
指定版本 --disable-content-trust
跳过镜像验证(默认是 true,意思是跳过,不做签名验证) --platform string
指定平台,比如拉 ARM 架构的镜像:--platform linux/arm64
-q
, --quiet
安静模式,不显示下载进度条,只显示镜像 ID
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 root@zheep:~# docker pull mysql Using default tag: latest latest: Pulling from library/mysql 72a69066d2fe: Pull complete 93619dbc5b36: Pull complete 99da31dd6142: Pull complete 626033c43d70: Pull complete ... Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738 bd5b8e7709 Status: Downloaded newer image for mysql:latest docker.io/library/mysql:latest docker pull mysql docker pul1 docker.io/library/mysql:1atest
docker rmi
删除镜像1 2 3 docker rmi -f 容器id docker rmi -f 容器id 容器id 容器id 容器id docker rmi -f $(docker images -aq)
容器命令 说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
新建容器并启动 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 docker run [可选参数] image -name="Name" 容器名字tomcat01 tomcat02,用来区分容器 -d 后台方式运行 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p ip:主机端口:容器端口 -p 主机端口:容器端口(常用) -p 容器端口 -P 随机指定端口 root@iZf8z4m0zzs3eoirsd64fvZ:~# docker run -it centos /bin/bash [root@061d6401141d /]# ls bin etc lib lost+found mnt proc run srv tmp var dev home lib64 media opt root sbin sys usr [root@061d6401141d /]# exit exit
列出所有运行中的容器 1 2 3 4 5 6 7 8 9 10 11 12 -a -n=? -q root@iZf8z4m0zzs3eoirsd64fvZ:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES root@iZf8z4m0zzs3eoirsd64fvZ:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 061d6401141d centos "/bin/bash" 17 minutes ago Exited (0) 7 minutes ago frosty_zhukovsky df72a233637c hello-world "/hello" 2 hours ago Exited (0) 2 hours ago recursing_proskuriakova
退出容器 删除容器 1 2 3 docker rm 容器id docker rm -f $(docker ps -aq) docker ps -a -q|xargs docker rm
启动和停止容器的操作 1 2 3 4 docker start 容器id docker restart 容器id docker stop 容器id docker kill 容器id
常用其他命令 后台启动容器 查看日志命令 1 2 3 4 5 6 7 8 9 10 11 docker logs -t -f -tf --tail 条数 容器 -tf 容器 docker run -d centos /bin/sh -c "while true;do echo zheep;sleep 1;done" root@iZf8z4m0zzs3eoirsd64fvZ:~# docker logs -f -t --tail 10 e0817c5740be 2025-05-12T09:17:53.276619691Z zheep 2025-05-12T09:17:54.278736383Z zheep ...
查看容器中进程命令 1 2 3 4 docker top 容器id UID PID PPID C STIME TTY TIME CMD root 2754169 2754145 0 17:17 ? 00:00:00 /bin/sh -c while true ;do echo zheep;sleep 1;done
查看镜像的元数据 进入当前正在运行的容器 docker exec -it 容器id bashShell
1 2 3 4 5 root@iZf8z4m0zzs3eoirsd64fvZ:~# docker exec -it e0817c5740be /bin/bash [root@e0817c5740be /]# ls -a . .dockerenv dev home lib64 media opt root sbin sys usr .. bin etc lib lost+found mnt proc run srv tmp var
docker attach 容器id
1 2 root@iZf8z4m0zzs3eoirsd64fvZ :~ 当前正在执行的代码...
区别 1 2 docker exec -it 容器id bashShell docker attach 容器id
从容器内拷贝文件到主机 1 2 3 docker cp 容器id :容器内路径 目的地的主机路径 容器可以直接退出,因为数据依然存在
小结 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 run create start restart stop pause unpause kill rm wait exec attach logs top inspect port diff events build images rmi pull push tag history save load export import cp login logout search info version stats
实践 Docker安装nginx 1. 搜索镜像 2. 下载镜像 3. 运行测试 1 2 3 4 5 6 7 8 9 10 docker run -d --name demo-nginx -p 1145:80 nginx:latest 暴露端口:容器内端口 curl localhost:1145 root@iZf8z4m0zzs3eoirsd64fvZ:~# docker exec -it demo-nginx /bin/bash root@b1aeedc7b8f3:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx -v
Docker安装tomcat …省略
1 2 3 4 5 6 7 8 9 10 docker run -it --rm tomcat:9.0 --rm root@iZf8z4m0zzs3eoirsd64fvZ:~# docker run -d -p 1234:8080 --name tomcat-dome root@iZf8z4m0zzs3eoirsd64fvZ:~# docker exec -it tomcat-demo /bin/bash root@a31230fef10b:/usr/local/tomcat# cd webapps root@a31230fef10b:/usr/local/tomcat/webapps# ls -a . ..
Docker安装es + kibana 1 2 3 4 5 6 7 8 9 10 11 12 13 14 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2 dockerrun -d --name elasticsearch -p 9200:9200 -p9300:9300 -e "discovery.type=sing1e-node" -e ES_JAVA_OPTS=-Xms64m -Xmx512m"e1asticsearch:7.6.2 "
可视化 portainer(先用这个) Rancher(CI/CD再用) 什么portainer? Docker图形化界面管理工具!提供一个后台面板供我们操作!
1 docker run -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer