docker(四)docker

docker
1.虚拟化技术:将不同的资源和逻辑单元剥离,形成松耦合的关系的技术(gartner)
{将一个真实的机器进行虚拟地分割,然后分割出来的部分可以独立使用}
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机上可以运行不同的操作系统,并且应用程序都可以相互独立的空间内运行而互不影响,显著提高计算机的工作效率。

虚拟化实现了用软件的方法重新划分和定义了IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源的利用率,使资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

虚拟化的目的就是要对IT基础设施进行简化,可以简化对资源以及对资源管理的访问

2.docker的优点
容器技术也能实现在一台硬件机器上虚拟出多个容器,每个容器中都可以放置一个互相隔离的服务器。所以,我们知道,容器其实也采用的是虚拟的方式进行,只不过,同等条件下,容器技术会比虚拟机技术效率要高,但是容器中没有包含独立的操作系统,虚拟机中包含独立的操作系统,所以每台虚拟机中的功能会比每个容器的功能要多些,正因为虚拟机带有很多东西,所以占的系统资源要大,效率要低些。

所以容器具有简明、轻快等特点

个人感觉

我觉得代码的环境分为运行环境和开发环境。运行环境不能直接修改,项目的代码越来越多的情况下,开发环境也会越来越不便测试。因此会有虚拟机这样的技术出现。但是虚拟机是模拟不同的系统环境,是在大的方面对项目代码测试。docker强调容器这一概念。就比如软件结构中的组件,docker容器中只运行其中一个组件的功能。因此测试代码问题会更加的精确。

3.docker的内部三大核心组件和运行步骤
3.1docker images
dockers images也叫做docker镜像,镜像一般是只读模板,用户不可以直接对其进行写入操作。使用镜像为了更好的保证数据的安全。

镜像就相当于java中的类,这个类可以自己写需要后面的dockerfile技术
3.2docker containers
dockers容器,容器与容器之间相互隔离,互不干扰容器可以进行开始,启动,删除,停止的操作。开发者快速地吧自己的应用打包到容器中进行发布

容器相当于是java中的对象

3.3docker register
docker仓库,下载上传镜像

这个就是相当于Java的类库了,当然了可以这么理解,但是之间肯定会有相应的区别。

下载

https://docs.docker.com/install/linux/docker-ce/centos/官网下载linux版本的docker-ce。

注意下载社区版的。跟着教程一步一步来就行。

docker 命令

systemctl enable docker开机自启动
/etc/docker/daemon.json 改镜像地址

$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID

$ docker ps -a // 查看所有容器
$ docker ps -a -q // 查看所有容器ID

$ docker stop $(docker ps -a -q) //  stop停止所有容器
$ docker  rm $(docker ps -a -q) //   remove删除所有容器

Docker基本命令:
0.开启一个已停止的容器
docker start images-id
1.从DockerHub上检索(查询)镜像:docker search [options --no-trunc:完整镜像描述 -s:列出收藏不小于指定的镜像 --automated:只列出automated build类型的镜像]

2.拉取镜像 docker pull images_name[:TAG(版本号,若未指定,默认为latest(最新版)]

3.列出本地镜像 docker images [options -a 列出本地所有的镜像(含中间映像层)-q 只显示镜像id --digests 显示镜像的摘要信息 --no-trunc:显示完整的镜像信息]
选项说明(
REPOSITORY:表示镜像的仓库源

  TAG:镜像的标签(版本)

  IMAGEID:镜像ID

  CREATED:镜像创建时间

  SIZE:镜像大小

4.删除镜像
docker rmi -f images_name(or images_id)
docker rmi -f images_name1:TAg images_name2:TAG 多个删除
docker rmi -f $(docker images -wq) 删除全部镜像
删除出现多个删除:有多层

删除镜像时遇到:[No such container]
service docker stop
rm -rf /var/lib/docker
sudo service docker restart(重启docker服务)
注:
docker service docker stop(关闭docker服务)
docker service docker start(开启docker服务)
5.镜像变更历史
docker history images_id或者名称
6. docker save -o 镜像名称[Tag]
将镜像保存到本地磁盘

7.https://blog.csdn.net/magerguo/article/details/72514813/
将docker挂载目录

8.run命令基本参数
-p :指定容器暴露的端口
-v:给同期挂载存储卷,挂载到容器的某个目录
-d:指定容器运行于前台还是后台,默认为false(运行一个带命令在后台不断执行的容器,不直接展示容器内部信息)
-i:打开stdin用于控制台交互
-t:分配tty设备,可以支持终端登陆,默认为false
--rm:清除foreground容器,设置在容器退出时自动清理容器内部的文件系统,对detached容器无效,默认为true(容器在他的进程结束后姨妈自动删除)
-it:这是两个参数,一个是 -i:交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。

9.退出容器
exit
CTRL +p+q

10.将容器挂到后台,docker run -dit openjdk /bin/bash
docker exec -it 933 bash
docker run -it -v /home/mushui/test_java:/home/code openjdk /bin/bash(将宿主机的目录挂载到虚拟机)

home/service/dockers-tomcat

11.docker 相关信息查询
容器中查看容器Linux版本
进入容器后,cat /etc/issue
查看docker容器或镜像的详细信息
docker inspect 容器id
容器占用查询
ps -ef|grep 容器id
root 7358 12956 0 09:14 ? 00:00:00 containerd-shim -namespace moby -workdir (示例输出)
top -p 7358(pid 进程的id)
参数说明:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

12.docker system df
查看是否有容器,镜像在运行

原文地址:https://www.cnblogs.com/mushuise/p/12121151.html

时间: 2024-11-08 02:17:18

docker(四)docker的相关文章

[开源夏令营][四] Docker remote API 之 镜像篇

列出镜像 列出镜像,有两个可选參数,一个是all,一个是filter,all可选值有,0/False/false,1/True/true,默觉得0:filter是一个包括一个过滤对象的json,形式如'{"dangling":["true"]}' GET /images/json 我们能够尝试请求一下 curl -s -XGET theegg.me/docker/images/json?all=0 | python -mjson.tool 能够看到例如以下的返回值:

docker: 四种网络模式

Docker 四种网络模式 四种网络模式摘自 Docker 网络详解及 pipework 源码解读与实践 docker run 创建 Docker 容器时,可以用 --net 选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式,使用 --net=host 指定. container 模式,使用 --net=container:NAMEorID 指定. none 模式,使用 --net=none 指定. bridge 模式,使用 --net=bridge 指定,默认设置

(四) Docker 使用Let's Encrypt 部署 HTTPS

参考并感谢 周花卷 https://www.jianshu.com/p/5afc6bbeb28c 下载letsencrypt镜像(不带tag标签则表示下载latest版本) docker pull quay.io/letsencrypt/letsencrypt 首次部署 docker run --rm -p 80:80 -p 443:443 --mount type=bind,source=/var/docker/configs/letsencrypt/,target=/etc/letsencr

docker 运行jenkins及vue项目与springboot项目(四.docker运行nginx)

docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四.docker运行nginx 五.jenkins打包springboot服务且在docker中运行 准备配置 创建 /home/jenkins/docker/nginx/nginx.conf 文件及/home/docker/nginx/log文件夹 其nginx.conf 文件为在原nginx.co

跟我一起学docker(四)--容器的基本操作

1.创建容器 Docker的容器十分轻量级,用户可以随时创建或删除容器. 新建容器:docker create Example:docker create –ti ubuntu 说明:使用docker create命令创建的容器处于停止状态,可以使用docker start命令启动它. 新增加了一个name等于test_create的,status等于create 新建并启动容器:docker run Example: docker run ubuntu/bin/echo "Hello Worl

Docker EE/Docker CE简介与版本规划

近日,Docker发布了Docker 17.03.进入Docker 17时代后,Docker分成了两个版本:Docker EE和Docker CE,即:企业版(EE)和社区版(CE).那么这两个版本有什么区别呢?不仅如此,Docker进入17.03后,版本命名方式跟之前完全不同,以后Docker又会有怎样的版本迭代计划呢?本文将为您一一解答. 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器

(转) Docker EE/Docker CE简介与版本规划

随着Docker的不断流行与发展,docker公司(或称为组织)也开启了商业化之路,Docker 从 17.03版本之后分为 CE(Community Edition) 和 EE(Enterprise Edition).我们来看看他们之前的区别于联系. 原文链接:http://itmuch.com/docker/docker-1/ 版本区别 Docker EE Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的.经过认证的容器和插件. D

理解Docker :Docker 网络

本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. Docker 网络概况 用一张图来说明 Docker 网络的基本概况: 2. 四种单节点网络模式 2.1 bridge 模式 Docker 容器默认使用 bridge 模式的网络.其特点

docker学习---docker基础知识

目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Registry 5.2.harbor部署 6.使用容器 7.容器导出和导入 8.数据卷 9.网络访问 10.dockerfile 10.1.基础指令 10.2.控制指令 10.3.引入指令 10.3.执行指令 10.4.配置指令 10.5.特殊用法 docker的基础 1.安装docker yum i

Docker 0x04: Docker 基本使用

目录 Docker 基本使用 第一步:明确要使用容器运行的应用的镜像相关 第二步:运行一个官方nginx应用 第三步:单纯下载镜像,pull 第四步:设置国内docker-hub 第五步:列出已有镜像和镜像物理目录在哪里 第六步:本地导入导出镜像及修改名字和tag 第八步: 宿主和容器互相复制数据 第九步: 通过dockerfile定制我们自己的镜像 Docker 基本使用 从利用docker镜像,跑起容器开始.使用现成的镜像. 第一步:明确要使用容器运行的应用的镜像相关 明确镜像名(仓库名)