ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker知识补充

2022-08-06 12:45:34  阅读:168  来源: 互联网

标签:容器 宿主机 补充 知识 -- 镜像 docker id


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有