其他分享
首页 > 其他分享> > docker知识补充

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