ToB企服应用市场:ToB评测及商务社交产业平台

标题: Docker 常用命令以及镜像选择 [打印本页]

作者: 飞不高    时间: 2024-6-14 23:14
标题: Docker 常用命令以及镜像选择
目录
1.Docker基本构成
2.镜像选择
2.1、镜像推荐选择方案
2.2版本选择
3.Docker 命令
3.1镜像管理
拉取镜像:
列出镜像:
删除镜像:
构建镜像:
3.2容器管理
 运行容器 
列出运行中的容器和所有容器
停止容器
启动重启容器
删除容器
查看容器日记
进入容器
3.3网络管理
3.4卷管理
指定卷删除(必要共同compose的隐式命令才能执行)
其他
3.5镜像和容器清算
3.6其他常用命令
查看 Docker 体系信息和容器详细信息
inspect详细信息
显示 Docker 版本
导出容器
导入镜像
镜像 save压缩load 解压


前言-与正文无关
生存远不止眼前的苦劳与奔忙,它还布满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的天下中,我们往往轻易陷入工作的漩涡,忘记了停下脚步,感受附近的天下。让我们一起提示自己,要适时放慢脚步,欣赏生存中的每一道风景,享受与家人朋友的温馨时光,发现那些平常日子里隐蔽的幸福时刻。由于,这些点点滴滴汇聚起来的,才是构成我们丰富多彩生存的本质。盼望每个人都能在繁忙的生存中找到自己的快乐之源,不但仅为了生存而工作,更为了更好的生存而生存.
送你张美图!盼望你开心!




1.Docker基本构成

docker主机(Host):安装了Docker程序的机器(Docker直接安装在操纵体系之上);
docker仓库(Registry):用来生存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似 maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用


2.镜像选择

好比我想下个mysql,但是docker hub仓库中有太多镜像了,我如何选择我想要的谁人镜像呢
2.1、镜像推荐选择方案

搜索官方镜像:在 Docker Hub 上搜索 mysql。官方镜像通常会带有“官方”标签。

 找下面两种标识的也是可以的,一个是发行商是经过验证的,一个是oss验证


2.2版本选择



3.Docker 命令

        
3.1镜像管理


        拉取远程仓库中的镜像到本地。
  1. docker pull <image_name>
复制代码

        列出本地所有镜像。
  1. docker images
复制代码

REPOSITORY 名称,一样平常和TAG组合使用形成唯一
TAG 版本号
IMAGE ID 镜像唯一id
CREATED是镜像作者发布到docker外网的时间,不是拉取到本地的时间
SIZE 镜像大小


        删除本地的某个镜像。
  1. docker rmi <image_name>
复制代码
比方:docker rmi  tomcat:9.0.20-jre8-alpine
除了按照名称也可以按照image ID进行删除,建议还是上面的名称删除,由于tagID在终端长度未完全显示,ID值会出现重复



使用当前目录的 Dockerfile 构建镜像。
  1. docker build -t <image_name> .
复制代码

3.2容器管理


         使用指定镜像启动容器,-d 表示背景运行,-p 用于端口映射。 --name设置容器名或镜像名
  1. docker run -d -p 80:80 --name <container_name> <image_name> ....
复制代码
常用参数 :
-d, --detach=false: 背景运行容器,并返回容器ID ,加d就不能使用--rm了
-i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用
-P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口。不推荐各位小伙伴 使用该参数
-p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐各位小伙伴们使用
-t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name="nginx-lb": 为容器指定一个名称
-h , --hostname="laosiji": 指定容器的hostname
-e , --env=[]: 设置环境变量,容器中可以使用该环境变量
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
--link=[]: 添加链接到另一个容器;不推荐各位小伙伴使用该参数
-v, --volume : 绑定一个卷
--privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities
--restart=no:指定容器停止后的重启计谋
no:容器退出时不重启
on-failure:容器故障退出(返回值非零)时重启
always:容器退出时总是重启,推荐各位小伙伴们使用
--rm=false: 指定容器停止后主动删除容器,不能以docker run -d启动的容器



        列出当前正在运行的容器。
  1. docker ps
复制代码
        列出所有容器(包括已停止的)。
  1. docker ps -a
复制代码

参数详解输出详情先容:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
created(已创建)
restarting(重启中)
running(运行中)
removing(迁徙中)
paused(暂停)
exited(停止)
dead(殒命)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 主动分配的容器名称。


大部分命令假如可以使用容器的id(container_id),实在也可以使用容器名
        停止指定容器。
  1. docker stop <container_id>
复制代码


        启动已停止的容器。
  1. docker start <container_id>
复制代码
       重启容器
       
  1.   docker restart  <container_id>
复制代码

        如:sudo docker rm -v <container_name_or_id>


        比方:
        先以此命令运行一个容器 docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
        必要先停止运行中的容器再删除,否则无法删除容器
        docker stop tomcat9
        按照容器名称删除
        docker rm tomcat9
        按照容器ID删除
        docker rm 8dd95a95e687

rm可以关联参数
        -f :通过 SIGKILL 信号强制删除一个运行中的容器。
        -l :移除容器间的网络连接,而非容器自己。
        -v :删除与容器关联的卷。


 


        查看容器输出的日记。
  1. docker logs <container_id>
复制代码
比方:docker logs --tail 500 -f gitlab
只查看该容器的近来 500 条日记记录。假如你还想保持及时刷新日记,可以使用 -f 选项,这将显示近来的 500 条日记,并在新日记条目添加时及时刷新
        -f : 跟踪日记输出
        --tail :仅列出最新N条容器日记



        进入正在运行的容器,/bin/bash 是要执行的命令,通常用于进入容器的交互式终端。
  1. docker exec -it <container_id> /bin/bash
复制代码
        /bin/bash 是有bash命令的linux体系:比方centos
        docker exec -it tomcat9.1 /bin/bash
        没有bash命令的linux体系:如下命令,比方alpine体系
        docker exec -it tomcat9.2 sh
                -i :即使没有附加也保持STDIN 打开
                -t :分配一个伪终端

exit退出容器
3.3网络管理


  1. docker network ls
复制代码

        创建新的 Docker 网络。
  1. docker network create <network_name>
复制代码


        将容器连接到指定网络。
  1. docker network connect <network_name> <container_name>
复制代码


        将容器从指定网络断开。
  1. docker network disconnect <network_name> <container_name>
复制代码


3.4卷管理

指定卷删除(必要共同compose的隐式命令才能执行)

删除容器并同时删除数据卷:
  1. sudo docker rm -v <container_name_or_id>
复制代码
删除所有未使用的数据卷
假如你想要删除所有未使用的数据卷,可以使用以下命令:这将删除所有未使用的(即不再关联任何容器的)数据卷。
  1. sudo docker volume prune
复制代码
 查询闲的数据卷
你可以通过以下命令查看所有未挂载的数据卷(这些是已经删除容器后孤立的数据卷):
  1. sudo docker volume ls -f dangling=true
复制代码
其他


3.5镜像和容器清算


  1. ​​​​​​​docker system prune
复制代码

3.6其他常用命令


        探求容器在服务器存储位置
        docker ps -a找到容器id/容器名称

        docker inspect 容器id/容器名称 | grep UpperDir找出该容器在物理机的位置

        cd到UpperDir所指向的地址,找到设置文件并修改,到这后,这个位置和你用exec命令进入容器内看到文件是同等的

load:解压至本地镜像
将上面save生存的包解压并放到本地仓库,通过docker images 重新获取信息
docker load -i linux.tar
docker load < tomcat9.0.20.tar

------------------------------------------与正文内容无关------------------------------------
 假如觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!
混口饭吃了!假如你必要Java 、Python毕设、商务相助、技术交换、就业指导、技术支持度过试用期。请在关注私信我,本人看到肯定立即复兴!
这是我全部文章所在目录,看看是否有你必要的,假如遇到觉得不对地方请留言,看到后我会查阅进行改正。
A乐神-CSDN博客
关注在文章左上角,作者信息处。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4