docker知识补充
作者:互联网
docker命令补充
三者关系:
1.先从仓库拉取镜像
2.通过镜像创建容器
关于docker 命令后跟的/bin/bash解释:进入命令行模式 因为容器是相互隔离的,所以容器内的端口可以重复;比如分别在A、B两个容器内部署了mysql服务,
那这两个容器都可以使用3306这个端口的;不会影响的;(这里好像是每个容器的ip都是不同的,具体百度下此处)
# docker的基本概念
# 镜像(image)
- 相当于是类class,模板
# 容器(Container)
- 镜像的实例
- 容器是通过镜像来创建的
- 容器是镜像的与运行状态,容器可以被创建、启动、停止、删除、暂停
# 仓库(Respository)
- 保存镜像的,类似gitLab
docker常用命令
docker inspect # 查看容器的详情,也可以看到容器的挂载目录
docker stats # 监控容器,类似top
docker -v # 查看当前dokcer版本
docker images # 查看当前镜像
docker rmi 容器id #(删除镜像) # rmove_images的缩写,rmi
# 查看过滤容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有的容器
docker ps |grep oracle # 过滤筛选容器
docker start "容器名称或者容器id" # 启动容器
system restart docker
system restart 容器id
docker rm -rf 容器名称 # 删除容器(可以删除正在运行的容器)
docker run # 创建并启动容器
docker run --help
# 1.判断本地是否有这个镜像,如果没有的话,会自动pull进行拉取的
# 2.创建容器
# 3.运行容器
# 注:此处如果不用-v进行挂载目录,只能使用copy 从宿主机往容器,或者容器往宿主机相互cp进行拷贝
docker run # 后面跟的一些参数
--name # 给容器指定名称
-v # 目录挂载(映射), -v 宿主机目录:容器目录
# 目录挂载时,如果宿主机的路径目录不存在,则会自动新建的
-p # 端口映射 -p宿主机的的端口:容器内应用的端口(比如要把容器内的mysql的端口映射出去)
# 如果容器内有mysql,端口号是3306,需要在宿主机(ubuntu映射一个端口9091)
# 映射完成以后外部才可以访问,https://宿主机的ip:9091才可以访问
docker run -it --name=kafka /bin/bash
# 容器与宿主机互拷贝
docker cp 容器id(或者容器名称):容器内路径 目的主机路径 # 容器内复制文件到容器外部
# docker cp 主机文件路径 容器id:容器内目的文件路径
docker cp $pwd 容器id(或者容器名称):容器内路径 # 容器外复制文件到容器内部
docker cp ./ 容器id(或者容器名称):容器内路径 # 容器外复制文件到容器内部
# 批量操作容器(慎用),操作后会返回对应的容器id
docker stop $(docker ps -a -q) # 批量停止所有容器
docker stop $(docker ps -a -q) # 批量启动所有容器,如果有link关联的,第一次启动不了,再次执行就行
docker rm $(docker ps -a -q) # 批量删除所有容器,如果有运行中的会报错,只能删除都是停止状态的容器
docker rmi $(docker ps -a -q) # 删除所有镜像
启动容器时关联其他容器
# 启动tomcat容器时,需要同时启动mysql、redis、kafka的容器
# 关联启动其他容器的时候,其他容器必须是运行的状态
docker run -id --name=tomact2 -p 8080:8080 --link mysql --link redis --link kafka
-v目录挂载
挂载最主要目的是为了,
1.数据的持久化;挂载以后就是把容器删除了,外部挂载的目录文件还是在的
就比如把容器删除了,然后把另外一个新的容器,也挂载到之前的路径
2.方便操作,就不用再来回容器内外复制文件了
docker logs 日志
# 查看近30分支的日志
docker logs --since 20m 容器id
docker logs -f 容器id
docker logs -f --tail 100 容器id # 查看后一百行
docker logd -f -t --since="2022-08-06" --tali 100 # 查看指定时间的日志,只显示最后100行
docker镜像打包
比如windows桌面没有网络,且远程桌面要使用的对应的镜像,就可以在外面把需要的镜像打成tar包,然后复制进去
# 把tomcat镜像打包成文件
docker save -o tomcat.tar tomcat
# 把tomcat.tar 放到其他电脑,其他人使用时,执行如下命令
docker load -i tomcat.tar
容器内的时间和宿主机的时间不同
pass # baidu
docker的web操作平台
Portainer 具体百度下,对于不会docker命令的可以用
查看容器的挂载信息
-A20:表示指定显示20行
docker inspect 容器ID |grep Mounts -A 20
# 其中Mounts下的Source就是宿主机的目录
# Destination 是容器内的路径
docker inspect -f "{{.Mounts}}" 容器id # 这行命令也是可以查看的
标签:容器,宿主机,补充,知识,--,镜像,docker,id 来源: https://www.cnblogs.com/xiaomengniu/p/16556837.html