Docker _容器,架构、原理,常用命令

Docker是一个开源的应用容器引擎,提供快速交付应用、环境一致性及轻量级隔离等优点。与虚拟机相比,Docker启动更快且资源占用更少。其架构包括镜像、仓库和容器。Docker运行基于Client-Server结构,通过命令行进行管理,如创建、启动、停止容器,以及查看日志和容器进程等。
摘要由CSDN通过智能技术生成

Docker

Docker 是一个开源的应用容器引擎,基于Go语言开发

Docker 让开发者打包 应用以及依赖包 到一个轻量级、可移植的容器中,然后发布到任何流行的系统


优点

  • 快速交付应用:加快打包时间,加快测试,加快发布,缩短开发及运行代码之间的周期
  • 复杂环境管理,应用隔离:不同软件运行环境兼容依赖问题,开发环境/测试环境/线上环境保持一致
  • 轻量级:对于系统内核,一个docker只是一个进程,一个系统可以运行上千个容器

Docker 与 虚拟机的区别

  • 容器与容器之间只是进程的隔离,虚拟机是完全的资源隔离
  • docker启动是秒级或者更短,虚拟机的启动可能需要分钟级别
  • 容器使用宿主操作系统的内核,虚拟机使用完全独立的内核

Docker 架构

在这里插入图片描述

  • Docker 镜像:Docker Images,每个镜像都可能依赖一个或多个下层的镜像组成的另一个镜像,AUFS文件系统
  • Docker 仓库:Docker Registry,集中存放镜像的地方
  • Docker 容器:Docker Containers,镜像运行后的进程

Docker 运行原理

在这里插入图片描述

底层原理

docker 如何工作?

Docker 是一个 Client-Server 结构的系统,docker守护进程运行在宿主机上,通过Socket从客户端访问。

DockerServer 接收 Client-Server 的指令
在这里插入图片描述

Docker 命令

常用命令

帮助文档地址:https://docs.docker.com/reference/

命令 说明
基本命令
docker version docker 版本信息
docker info docker 系统信息
docker --help 帮助命令
镜像管理
docker images 查看所有镜像
docker search busybox 搜索镜像
docker pull busybox:latest 拉取下载
docker save busybox > busybox.tar 导出
docker load < busybox.tar 导入
docker rmi -f [busybox:latest] / [id] 删除指定镜像
docker rmi -f $(docker images -aq) 删除全部镜像
docker tag busybox:latest busybox:test 更改镜像名
docker history busybox:latest 查看镜像创建历史
容器管理
docker run -d --name=busybox busybox:latest ping 114.114.114.114 运行容器
docker ps [-a] 查看运行的容器
docker top busybox 查看容器中运行的进程
docker stats busybox 查看资源占用
docker start /restart /stop /kill busybox 容器
docker pause / unpause busybox 暂停容器
docker rm -f busybox 强制删除容器
docker exec -it busybox ls 执行命令
docker exec -it {容器名称} /bin/bash 进入容器
docker cp busybox:/etc/hosts hosts 复制文件
docker logs -f busybox 查看容器日志
docker inspect busybox 查看容器/镜像 元信息
docker inspect -f ‘{ {.Id}}’ busybox 格式化输出
docker diff busybox 查看容器内文件结构

容器命令

新建容器并启动:

docker run [可选参数] image

参数:
--name=[name]   容器名字
-d				后台运行
-it				交互式运行,进入容器查看内容
-p				指定容器端口  -p 8080:8080
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-P				随机指定端口


测试:
启动并进入容器
[root@localhost docker]# docker run -it centos /bin/bash
[root@0d6bc51c1a81 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

从容器退回主机 (停止运行容器退出)
[root@0d6bc51c1a81 /]# exit
exit
[root@localhost docker]# 

不停止运行退出exit
Ctrl+P+Q
[root@f3116e051806 /]# [root@localhost docker]#

列出运行的容器

docker ps  [可选参数]	列出当前正在运行的容器

参数:
-a			列出当前运行的容器+历史运行过的容器
-n=<数字>	列出最新创建的前n个容器
-q			只列出当前运行的容器编号
-aq			列出当前运行以及运行过的容器编号


[root@localhost docker]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost docker]# docker ps -a
CONTAINER ID   IMAGE                     COMMAND                  CREATED             STATUS                          PORTS     NAMES
0d6bc51c1a81   centos                    "/bin/bash"              3 minutes ago       Exited (0) About a minute ago             gracious_euler
b2dd66d87998   centos                    "/bin/bash"              3 minutes ago       Exited (130) 3 minutes ago                boring_pascal
dc669bca69f5   hello-world               "/hello"                 About an hour ago   Exited (0) About an hour ago              peaceful_morse
3575d3e83144   jenkins/jenkins:lts       "/sbin/tini -- /usr/…"   5 days ago          Exited (143) 2 days ago                   jenkins2
cc774ec82fb2   bitnami/mariadb:10.3.22   "/opt/bitnami/script…"   6 days ago          Exited (1) 6 days ago                     mariadb
e4cfb8d38359   nginx:1.17.9              "nginx -g 'daemon of…"   6 days ago          Exited (0) 5 days ago                     my_nginx
[root@localhost docker]# 

删除容器

docker rm 容器id						删除指定的容器,不能删除正在运行的容器
docker rm -f $(docker ps -aq)		删除所有的容器
docker ps -a -q |xargs docker rm	删除所有容器

启动,停止容器

docker start 容器id			启动容器
docker restart 容器id		重启容器
docker stop 容器id			停止当前正在运行的容器
docker kill 容器id			强制停止当前运行的容器

常用其他命令

后台启动容器


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值