当前位置: 首页 > news >正文

docker基本命令-容器

容器

基本概念

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

常用命令

创建并运行容器

命令

docker run xxx

运行mysql镜像

// 5.7.25版本
docker run -d -p 3307:3306 --name mysql_muse -e MYSQL_ROOT_PASSWORD=servyou@muse 98455b9624a9
// 8.0.20版本
docker run -d -p 3308:3306 --name mysql_muse8.0.20 -e MYSQL_ROOT_PASSWORD=servyou@muse be0dbf01a0f3

-d: 守护进行,在后台运行
-p:端口的映射,宿主机的端口/容器的端口
3307是宿主机的端口(本机对外暴露的端口,别的机器通过这个端口连接数据库)
3306指的是当前启动容器的端口
–name: 给容器设置个名称,这里的名称就叫mysql
-e: mysql的密码, 这里是给root用户设置的密码为 servyou@muse
最后跟着是镜像id
在这里插入图片描述

运行centos系统

docker run -it 300e315adb2f /bin/bash

在这里插入图片描述
在这里插入图片描述

运行nginx

// 运行nginx
docker run -d -p 80:80 --name trident-web-1.2.0 6fca7654d0ab// 阿里云服务器运行nginx容器并与阿里云宿主机挂载容器卷
docker run -d -p 80:80 --name hexo-blog -v /root/workspace/hexo-blog:/usr/webapp nginx

运行node容器


docker run -p 4000:4000 --name hexo -it 1d88d89c7230 /bin/bash// 宿主80端口映射容器4000端口,直接访问域名,就会转到容器内部的4000端口的服务了
docker run -p 80:4000 --name hexo -it 1d88d89c7230 /bin/bash

重启容器

docker restart + id
docker restart 60d763cdb56a

在这里插入图片描述

停止容器

停止单个容器

docker stop + containerId
docker stop 38eb55a92d74

在这里插入图片描述

停止所有容器

docker stop $(docker ps -q)

查看容器

查看所有运行中的容器

docker ps

查看所有的-包括停止的

docker ps -a

查看最近运行过的容器

docker ps -l

在这里插入图片描述

删除容器

删除单个容器

docker rm +id
docker rm 69541657497a

删除一个已近存在的容器,删除这个容器之前,需要先stop不然会收到如下错误
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除所有容器

docker rm $(docker ps -aq)

停止并删除所有容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

进入容器内部

docker exec -it 容器id sh
docker exec -it fc29bdda6386 sh# 有的Dockerfile追加了 CMD /bin/bash 那就不用加后面的这个 /bin/bash 否则需要加的,不然就会kill itself
docker exec -it 容器id /bin/bash

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

attach

docker attach containerID

docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。而使用exec的方式进入容器,exit出来之后,该容器可以正常运行
在这里插入图片描述

在这里插入图片描述

退出容器

在这里插入图片描述

新建镜像

如果我们运行一个容器,比如是ngnix, 此时运行的是一个从官网拉下来的标准配置的ngnix,我们在运行的容器中按需修改了一些配置,此时我们可以提交该容器成为新的镜像,新的镜像就可以包含我们修改的一些配置。以后就可以以此为新的镜像启动。

docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]

等将一个容器打成新的镜像之后,又可以将整个新的镜像导出出去,供给别人使用

http://www.lryc.cn/news/38555.html

相关文章:

  • QT入门基础(一)
  • WattOS:一个稳又快的轻量级 Linux 发行版
  • Java调用Python脚本:轻松实现两种语言的互操作性
  • 未系安全带识别系统 yolo
  • (七十六)大白话MySQL是如何根据成本优化选择执行计划的?(上)
  • DSRC技术
  • _面经问题_
  • 刷题记录(2023.3.6 - 2023.3.11)
  • 14 Day:同步锁与操作系统输入输出
  • Gradle 的下载安装教程
  • 「Python 基础」常用模块
  • Java【二叉搜索树和哈希表】详细图解 / 模拟实现 + 【Map和Set】常用方法介绍
  • 如何用 C 语言实现文本特征提取?
  • ESD静电保护器件分类简介及场景应用
  • 硅谷银行倒闭的几点启示
  • 【AWS入门】IAM基本应用-2023/3/4
  • RabbitMQ系列(1)--RabbitMQ简介
  • aws dynamodb 使用awsapi和PartiQL掌握dynamodb的CRUD操作
  • 【C++学习】类和对象(上)
  • 一文带你深入理解【Java基础】· Java反射机制(下)
  • JVM的几种GC
  • 掌握Shell脚本的if语句,让你的代码更加精准和高效
  • 音质好的蓝牙耳机有哪些?音质最好的蓝牙耳机排行
  • 一次Android App NDK崩溃问题的分析及解决
  • 因果图判定表法
  • Oracle 数据库相关信息清单列表
  • 射频资料搜集--推荐几个网站和链接
  • B1048 数字加密
  • Qt使用FFmpeg播放视频
  • Win32 ListBox控件