如果运行的服务在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 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 | 删除所有无主的数据卷【容器终止时数据卷不会被删除 |