#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#docker开机启动
systemctl enable docker
#docker各命令帮助文档 如 run指令 docker run --help
docker 具体指令 --help
查看主机上的镜像列表可以使用 docker images 来列出
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 9c7a54a9a43c 3 weeks ago 13.3kB
各个选项说明:
常用命令参数组合:
[root@localhost ~]# docker images -a -q
0ec8ab59a35f
9c7a54a9a43c
使用 docker search XX某个镜像名称 命令来查找镜像,如redis
docker search redis
各个选项说明:
如果你只想只想罗列出指定数量镜像,可以添加参数 --limit, 如:
docker search redis --limit 5
使用 docker pull XX某个镜像名称:TGA 命令来查找镜像,如果没有指定TGA版本默认latest,如redis
#拉取最新版redis
docker pull redis
#拉取指定版本redis
docker pull redis:6.0.8
#
我们上一章节run了hello-world镜像,我们来删除试试;
docker rmi hello-world
#可能会出现错误提示
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 7edf17cbcfd2 is using its referenced image 9c7a54a9a43c
发现报错了,这时候主要看两点:要么就是container实例存在,要么存在镜像依赖;
#查看容器实例
docker ps -a
#再删除容器
docker rm 容器实例ID
#再执行删除镜像命令
docker rmi hello-world
大家可能发现这样操作会比较麻烦,那么就引入一个参数 -f
常用的删除命令如下:
#强制删除
docker rmi -f hello-world
#删除多个镜像
docker rmi -f xx镜像id xx镜像id
#删除全部
docker rmi -f $(docker images -qa)
[root@localhost ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 0 117.1MB 117.1MB (100%)
Containers 2 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
该命令列出了 docker 使用磁盘的 4 种类型
很多时候我们对某一镜像进行了一些升级或改动,又希望可以复用,比如我在默认ubuntu镜像中安装并配置了jdk、mysql等,我们可以提交该容器副本使之成为一个新的镜像
语法:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
参数说明:
OPTIONS说明:
# docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker commit -a "micro" -m "增加jdk mysql" 原ubuntu容器ID newubuntu:u1
#使用查看镜像命令
docker images newubuntu:u1
REPOSITORY TAG IMAGE ID CREATED SIZE
newubuntu u1 37af1236adef 15 seconds ago 329 MB
docker run 命令用于从镜像中创建一个新容器,该命令参数较多, 可以使用docker run --help查看详细参数解释
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
列举常用的几个参数进行说明
#前台运行模式
docker run -it redis
#后台运行模式
docker run -d redis
语法
docker ps [OPTIONS]
参数说明:
针对已经停止的容器实例,比如STATUS为Exited的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ac3579e18bb redis "docker-entrypoint.s…" About a minute ago Exited (0) 12 seconds ago goofy_almeida
可以使用docker start 容器ID 的命令重新启动
docker start 9ac3579e18bb
docker restart 容器ID或容器名称
docker restart 9ac3579e18bb
docker stop 容器ID或容器名称
docker stop 9ac3579e18bb
docker kill 容器ID或容器名称
docker kill 9ac3579e18bb
docker rm 容器ID
#普通删除
docker rm 9ac3579e18bb
#强制删除
docker rm -f 9ac3579e18bb
#删除全部
docker rm -f $(docker ps -a -q)
#删除所有已停止容器
docker container prune
前面我们在介绍docker run 之命令的时候,分别介绍了前台启动 和后台启动,两者的区别就在于前台启动,只要exit退出指令容器也随之停止了; 而后台启动使用 docker exec 进入终端exit是不会停止容器的
第一种:
docker attach 直接进入容器启动命令的终端,不会启动新的进程,只要exit退出指令容器也随之停止了
docker attach 9ac3579e18bb
第二种:(推荐)
docker exec 是在容器中打开新的终端,并且可以启动新的进程,exit退出指令不会导致容器停止
docker exec -it 9ac3579e18bb /bin/bash
很多时候我们在生产环境下是无法连接外网的,所以有时候需要用到容器的导入和导出。
docker export 9ac3579e18bb > redis-bak.tar
docker import redis-bak.tar bak/redis:v1.0.0
本章主要介绍了Docker 启动类命令,Docker 镜像、容器常见命令,如果你觉得本文对你有帮助,可以点赞收藏,感谢!
下一章:在Centos Stream 9上Docker的实操教程 - Docker容器数据卷