docker 容器

docker

docker架构

镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。

容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停。

仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。类似与maven

默认情况下,将来从docker hub(https://hub.docker.com/)

上下载docker镜像,太慢。一般都会配置镜像加速器:

配置镜像加速器

  • 需要您自己找找吧,现在强的厉害,我就不贡献啦。

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 容器

查看容器

查看正在运行的容器

复制代码
docker ps
  • CONTAINER ID 容器的 ID
  • IMAGE 创建容器时所使用的镜像
  • COMMAND 运行容器中的软件执行的命令
  • CREATED 容器的创建时间
  • STATUS 容器的状态: UP 表示运行状态 Exited 表示关闭状态
  • PORTS 宿主机端口和容器中软件的端口的对应关系
  • NAMES 容器的名称

查看所有的容器(包含了正在运行的容器以及之前启动过的容器)

复制代码
docker ps --a

查看最后一次运行的容器

复制代码
docker ps --l

查看停止的容器

复制代码
docker ps -f status=exited

创建与启动容器

创建容器参数介绍

创建容器的时候我们需要使用如下命令进行容器的创建

复制代码
docker run
  • -i 运行容器

  • -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

  • -d 在 run 后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)

  • --name 为创建的容器命名

  • -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上

  • -p表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射

-d 和-t. --d 表示让容器在后台运行起来, -t 表示创建好容器以后我们就指定进行到容器中,进入到容器中以后我们
就可以输入命令和容器进行交互. 既然如此,那么也就是说容器我们可以分为两类: 1. 交互式容器 2. 守护式容器

创建交互式容器

创建一个交互式容器并取名为 mydashab

复制代码
docker run -it --name=mydashab tomcat /bin/bash

使用 exit 推出容器

容器也关闭了,这就是交互式容器的特点: 当我们推出容器以后,容器就关闭了

Unable to find image 'tomcat:latest' locally

如果你执行这条命令出现 Unable to find image 'tomcat:latest' locally,是没有对应的镜像image ,需要pull对应的镜像

创建守护式容器

创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。命令如下(容器名称不能重复):

复制代码
docker run -di --name=mydashab2 tomcat

我们创建好容器以后,这个容器是以后台的方式运行的,那么我们需要操作容器就需要登录到容器中,可以使用如下命令进行登录

复制代码
docker exec -it 容器名称 (容器id) /bin/bash

退出容器,然后在查看容器的状态,容器还是运行的

停止与启动容器

关闭容器

复制代码
docker stop 容器名称或者容器id

启动已经关闭的容器

复制代码
docker start 容器名称或者容器id
相关推荐
Kaede61 小时前
如何应对Linux云服务器磁盘空间不足的情况
linux·运维·服务器
Kookoos4 小时前
Dynamics 365 Finance + Power Automate 自动化凭证审核
运维·自动化·dynamics 365·power automate
努力学习的小廉8 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
MickeyCV8 小时前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像
秃头菜狗8 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
棠十一8 小时前
Rabbitmq
分布式·docker·rabbitmq
jiunian_cn9 小时前
【Linux】centos软件安装
linux·运维·centos
藥瓿亭9 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
2302_8097983210 小时前
【JavaWeb】Docker项目部署
java·运维·后端·青少年编程·docker·容器
嵌入式大圣10 小时前
Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
运维·docker·容器