一·、帮助启动类命令
启动docker:systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态:systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查询docker的总体帮助文档: docker --help
查看docker 命令帮助文档:docker 具体命令 --help
二、镜像命令
(1)docker images 列出本地主机上的镜像
OPTIONS说明:-a 列出本地所有镜像(含历史) -q:只显示镜像ID
(2)docker search 镜像名称
OPTIONS说明:--limit:只列出N个镜像,默认25个
docker search --limit 5 redis
(3)docker pull 镜像名称[:TAG] 没有就是最新版 = docker pull 镜像名字:latest
eg:dokcer pull hello-world ,docker pull redis:6.0.8
(4)docker system df 查询镜像/容器/数据卷所占的空间
(5)docker rmi 镜像id或者镜像名称
OPTIONS说明:-f 强制删除
删除多个时,镜像id之间用空格隔开
删除全部 docker rmi -f $(docker images -qa)
面试题:docker虚悬镜像:仓库名、标签都是
的镜像,为虚悬镜像,可以删除没啥用
三、容器命令
(1)新建+启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS :
--name="容器新名字"
-d:后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i:以交互模式运行容器,通常与-t同时使用:
-t:为容器重新分配一个伪输入终端,通常与-i使用
也即启动交互式容器(前台有伪终端,等待交互)
-P:随机端口映射
-p:指定端口映射
eg: docker run -it ubuntu /bin/bash 启动ubuntu /bin/bash:放在镜像名后的是命令,希望一个交互式Shell,因此用的是/bin/bash
eg:docker run -it --name= mu ubuntu /bin/bash
(2)docker ps [OPTIONS]列出正在运行的容器
OPTIONS : -a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器 -n:显示最近n个创建的容器 -q:只显示容器编号
(3)退出容器
run进入容器,exit退出,容器停止 使用ctrl+p+q退出,容器不会停止
(4)启动已停止的容器 docker start 容器id 或者容器名称
类似的命令:docker restart 容器id 或者容器名称
docker stop 容器id 或者容器名称
docker kill 容器id 或者容器名称 强制停止容器
(5)删除已停止的容器 docker rm 容器id或名称 加-f强制删除
(6)-d指定容器后台运行 docker run -d 容器名
docker容器后台运行,就必须有一个前台进程
(7)查看容器的日志 docker logs 容器id
(8)docker top 容器id 查看容器内运行的进程 每一个容器可以看做一个简易版的Linux容器
(9)docker inspect 容器id
(10)进入 容器并以命令行交互 docker exec -it 容器id /bin/bash 或者 docker attach 容器ID
两者的区别:attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止;exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。推荐使用exec
(11)从容器拷贝数据到主机
docker cp 容器ID:容器内路径 目的主机路径
(12)导入和导出容器
docker export 容器id > 文件名.tar
cat 文件名.tar | docker import -镜像用户/镜像名:镜像版本号
(13)按照文件所需要的的操作,例如 ubuntu刚开始没有vim命令
可以先执行 apt-get update 然后执行 apt-get -y install vim
然后提交镜像 docker commit - m= "提交的信息" - a="作者" 容器ID 要创建的目标镜像名:[标签名]
(14)使用容器卷备份数据的命令:
docker run -it --privileged=true -v /宿主机绝对路基目录:/容器内目录 镜像名 (默认可以读写)
docker run -it --privileged=true -v /宿主机绝对路基目录:/容器内目录:ro 镜像名(容器内只能读,宿主机可读可写)
(15)容器卷继承和数据共享 docker run -it --privileged=true --volumes- from 父类 镜像名
四、构建dockerFile的常用保留字指令
FROM :所需基础镜像,第一条必须是from
MAINTAINER:镜像维护者的姓名和邮箱地址
RUN:容器构建时需要的命令
EXPOSE:暴露的端口号
WORKDIR:指定创建容器后,终端默认登录进来工作目录
USER:指定该镜像以什么样的用户去执行,如果不指定,默认是root
ENV: 构建镜像过程中设置环境变量
ADD:将宿主机目录下的文件拷贝到镜像里面且会自动处理urL和解压tar压缩包
COPY:拷贝文件和目录当镜像
VOLUME:容器卷,用于持久化
CMD:指定容器启动后要干的事情
ENTRYPOINT:用来指定一个容器启动时要运行的命令