docker命令

如果运行的服务在docker中运行,想要访问的话要进入容器中,然后才能访问

容器相当于是镜像实例化出来的对象【相互关系解释】

各容器通过服务器内网ip进行互相沟通

命令 效果
docker images 查看docker中所有镜像/可加 -f 使用过滤器/可加 -q 只输出镜像ID
docker images 镜像名 查看docker中所有指定名字的镜像
docker images 镜像名:tag名 查看docker中所有指定名字和tag的镜像
docker save 镜像名:镜像版本号 -o 镜像文件名 保存docker中的镜像文件到文件目录
docker rmi 镜像ID 从系统docker中移除指定镜像
docker load --input 镜像压缩包名.tar 加载镜像压缩包中的镜像到系统docker
docker load < 镜像压缩包名.tar 加载镜像压缩包中的镜像到系统docker,与上一条等价
docker ps 看docker中所有还在跑的容器
docker ps -a 看docker中所有容器,包括已经死了的
docker logs -f 容器ID 查看指定容器的日志
docker logs 容器名 > log.txt 将docker日志保存到本地文件
docker rm -f 容器ID 从系统docker中移除指定容器
docker exec -it 容器ID /bin/bash 进入指定容器,并且进入bash【命令行工具】
docker system df 查看Docker的磁盘使用情况
docker system prune 清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉。所以使用之前一定要想清楚
docker run -p 宿主机端口:容器里面的端口 --restart-always -d -v 宿主机绝对路径:容器里面的路径/opt/kvp 镜像名 用指定镜像起一个带守护进程的容器
docker run -p 宿主机端口:容器里面的端口 -d --env-file=配置文件 镜像名 在跑容器时加载指定配置文件中的环境变量
docker system df 查看镜像、容器、数据卷所占用的空间
docker image ls -f dangling=true 查看没有镜像名的虚悬镜像
docker image prune 删除虚悬镜像
free -h 查看机器的内存配置
docker container start 将一个已经终止的容器启动运行
docker container ls 展示在跑的所有容器
docker container ls -a 展示所有容器,包括已经终止的
docker container stop 中止一个运行中的容器
docker container restart 将一个运行中的容器终止,后重新启动
docker container rm 删除一个终止的容器
docker container rm -f 删除一个容器,无所谓此容器是否终止
docker container prune 删除所有处于终止状态的容器
docker export 容器id > 文件名 保存一个容器的快照
cat 文件名 | docker import - 容器名:tag 从文件中加载一个容器快照,同时设定容器名和tag
docker search 镜像名 查找官方仓库中的镜像
docker pull 镜像名 拉取指定镜像
docker inspect 容器名 查看容器信息

跑容器时的参数及意义

命令 效果
--restart="always" 自动持久化,死了自动拉起来
-p 宿主机端口:容器里面的端口 设置端口映射关系,可多次使用映射多个端口
-d 跑起来以后不打印镜像日志/类似于nohup跑
-v 宿主机绝对路径:容器里面的绝对路径 文件目录挂载,将宿主机里的目录挂载进容器的指定目录中,可用此实现文件存储路径的挂载和配置文件的挂载/可以挂载目录也可以挂载具体的文件
-v 数据卷名称:容器里面的绝对路径 将数据卷挂载到容器的指定目录
--mount type=bind,source=宿主机绝对路径,target=容器里面的绝对路径 将宿主机里的目录挂载进容器的指定目录中,与-v的区别是如果宿主机路径不存在,--mount不会自动创建
--mount source=数据卷名称,target=容器里面的绝对路径 将数据卷挂载到容器的指定目录
--env-file=环境变量文件 在跑镜像的时候手动加载环境变量文件,这样加载的环境变量会成为优先配置
--rm 容器退出后随即删除,一般用于测试
-i 交互式操作
-t 终端
-it 镜像名/容器名 bash 一般这么用,表示进入容器的bash界面

dockerfile指令

指令 效果
RUN Linux指令 在镜像中执行目标指令
COPY 本地路径 镜像内目标路径 将本地路径拷贝到镜像内的目标路径,本地路径可以指向具体文件也可以指向目录【如conf/*】
ADD 本地路径 镜像内目标路径 基本和COPY一致,当本地路径指向一个tar压缩文件时,ADD指令会自动将其解压后再放入镜像
CMD Linux指令 在镜像中执行目标指令,此用法与RUN无异
CMD ["可执行文件", "参数1", "参数2"...] 在镜像中执行指定的可执行文件,并带上相应参数,一般用于指定默认的容器主进程的启动命令
ENTRYPOINT 与以上CMD的两种使用方法无异,但如果有ENTRYPOINT时,CMD将会变为给ENTRYPOINT传参,执行语句为 ""
ENV key value 声明环境变量,声明后可用$key调用环境变量,容器运行时也可以使用此环境变量
ENV key=value 声明环境变量,声明后可用$key调用环境变量,容器运行时也可以使用此环境变量
ARG 用法同ENV,但在容器运行时是无法使用ARG定义的环境变量的
VOLUME 目录 指定目录挂载为匿名卷,这样在运行时没有指定挂载卷也不会报错
EXPOSE 端口 声明运行时容器提供服务端口,仅为声明,并不会真的做什么操作
WORKDIR 工作目录路径 指定之后的工作目录,在流程中相当于cd/如果目标目录不存在则会自动创建
USER 用户名 指定之后执行命令的用户身份
HEALTHCHECK [选项] CMD <命令> 设置检查容器健康状况的命令
HEALTHCHECK NONE 如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令
ONBUILD 其它指令 在当前镜像构建时并不会被执行,以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行

数据管理

指令 效果
docker volume create 数据卷名称 创建数据卷
docker volume ls 查看所有数据卷
docker volume inspect 数据卷名称 查看指定数据卷信息
docker volume rm 数据卷名称 删除数据卷
docker volume prune 删除所有无主的数据卷【容器终止时数据卷不会被删除

你可能感兴趣的:(docker命令)