docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器
docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的系统
docker仓库:docker registries ,也叫docker仓库, 分为共有库和私有库俩种,上传下载images是通过dcoker仓库来实现的,公有库叫docker hub,也可以在局域网部署一个私有的docker仓库
docker容器:容器是从image中创建的,可以执行启动、开始、停止、删除等操作,可以理解为image创建的一个虚拟机
开始正题:
docker安装:centos 7 ------------yum -y install docker-io
查看docker目前有哪些镜像:
docker images
查看docker库中有哪些images
docker search “images-name” 例如: docker search centos7
我们看到下图出现很多参数,其中包括image的名字、描述、stars(受欢迎程度) 是否为官方创建 是否为自动创建等
Docker Official Images指docker标准库, 由docker 官方建立. 用户建立的image则会有userid的prefix.
拉取镜像
docker pull docker.io/ansible/centos7-ansible #下载完镜像后可以使用docker images查看是否下载成功
启动容器并进入到容器中
docker run -it {镜像id} /bin/bash #也可以添加-d参数后台运行
假如容器在后台运行,这个时候就需要进入到该容器进行操作
1. docker attach 容器id
不常用:但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。
2.容器中安装sshd进行远程
不常用:为了保证安全性,不建议开启SSHD服务
3.使用nsenter进行远程(默认已经安装,如果没有可以手动安装)
docker inspect -f '{{.State.Pid}}' 容器ID
nsenter --target 容器PID --mount --uts --ipc --net --pid
例如:
4.使用 exec进入docker容器
docker exec -it 容器id /bin/bash
===============================================================================================================================================
创建新镜像:在容器中部署好应用,有时会迁移到其它docker环境中,所以我们需要将当前容器中的应用创建为新的镜像上传到docker仓库中,方便下载使用
(1) docker commit来生成新镜像
参数详解:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
举例说明:
docker commit -a "guohaidong" -m "vsftpd" f8315ebb750b vsftpd:v1
使用Dockerfile创建新镜像
指令说明
指令的一般格式为INSTRUNCTION arguments,指令包括FROM、MAINTAINER、RUN等。具体指令及说明如下:
指令 | 说明 |
FROM | 指定所创建镜像的基础镜像 |
MAINTAINER | 指定维护者信息 |
RUN | 运行命令 |
CMD | 指定启动容器时默认执行的命令 |
LABEL | 指定生成镜像的元数据标签信息 |
EXPOSE | 声明镜像内服务所监听的端口 |
ENV | 指定环境变量 |
ADD | 赋值指定的<src>路径下的内容到容器中的<dest>路径下,<src>可以为URL;如果为tar文件,会自动解压到<dest>路径下 |
COPY | 赋值本地主机的<scr>路径下的内容到容器中的<dest>路径下;一般情况下推荐使用COPY而不是ADD |
ENTRYPOINT | 指定镜像的默认入口 |
VOLUME | 创建数据挂载点 |
USER | 指定运行容器时的用户名或UID |
WORKDIR | 配置工作目录 |
ARG | 指定镜像内使用的参数(例如版本号信息等) |
ONBUILD | 配置当前所创建的镜像作为其他镜像的基础镜像时,所执行的创建操作的命令 |
STOPSIGNAL | 容器退出的信号 |
HEALTHCHECK | 如何进行健康检查 |
SHELL | 指定使用SHELL时的默认SHELL类型 |
Dockerfile文件格式
最简单的案例:
在linux系统中的某个路径新建一个文件为Dockerfile文件
vim Dockerfile
FROM docker.io/centos
MAINTAINER Guo Haidong <493630393@qq.com>
RUN yum -y install mariadb
然后使用docker build -t contos/mariadb:v1 -f /data/docker/Dockerfile . #来生成新的镜像# “.”默认是指Dockerfile是在当前路径,也可以使用-f参数来指定Dockerfile路径
-t 指定镜像名称和tag
-f 指定Dcokerfile文件的path
#*******搭建私有docker仓库,上传镜像到仓库,后面介绍
删除镜像
docker rmi 镜像id
删除镜像前必须删除容器
docker rm -f 容器id
查看容器id方法:
docker ps
===================================
终端运行一个nginx容器,如果没有nginx镜像会自动从docker仓库中pull下来
docker run --name nginx -it nginx /bin/bash
===========================================================
查看容器的pid
docker inspect -f '{{.State.Pid}}' 容器ID
使用nsenter配合容器PID来进入到容器里
nsenter --target 容器PID --mount --uts --ipc --net --pid
============================================================================
命令总结:
镜像管理
docker search 搜索镜像
docker pull 获取镜像
docker images 查看镜像
docker rmi 删除镜像
docker commit命令或者编写dockerfile文件 生成新镜像
容器管理
docker run --name -h hostname 启动容器
docker stop|start|restart 容器id 停止|启动|重启 容器
docker run --restart=always --name hostname -d 容器id或者容器名称 自动重启容器(当容器由于某种错误导致容器停止就会触发restart信号)
docker ps -l 查看最后一个退出容器
docker ps -n number 显示最后几个容器
docker top 容器id或者容器名称 查看当前运行的进程
docker logs -f 容器id或者容器名称 实时查看当前容器日志输出
docker attach | 容器SSH |使用nsenter |使用exec 进入容器 #这里推荐使用后俩种,
*****docker inspect 容器名称或者容器id 显示容器的详细信息
*****docker inspect --format '{{.Config.Hostname}}' 容器名称或者容器id
docker简单介绍----镜像和容器管理的更多相关文章
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- Docker系列(一):Docker简单介绍
Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...
- Docker 镜像与容器管理
镜像与容器简介 Docker的大部分操作都围绕着它的三大核心概念:镜像.容器.仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了 ...
- Docker镜像和容器管理(二)
Docker安装 Docker镜像管理 https://hub.docker.com/ 是公共的一个Docker镜像仓库,类似GitHub一样,上面有非常多的开源项目镜像. 可以直接在命令行搜索镜像 ...
- docker(2)安装centos7镜像与容器管理
1.镜像加速器 创建/etc/docker/daemon.json { "registry-mirrors": [ "https://registry.docker-cn ...
- Docker——理解好镜像和容器的关系
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 镜像也是 docker 的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态.前面我们介绍了 ...
- 一个简单易用的容器管理平台-Humpback
什么是Humpback? 在回答这个问题前,我们得先了解下什么的 Docker(哦,现在叫 Moby,文中还是继续称 Docker). 在 Docker-百度百科 中,对 Docker 已经解释得很清 ...
- docker 简单介绍及基础命令运用
一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...
- Docker&K8S&持续集成与容器管理--系列教程
前言 网络虚拟化 一 Docker简介 Docker介绍 → B站视频链接 Docker架构 → B站视频链接 二 Docker安装 Ubuntu Docker 安装 CentOS Docker ...
随机推荐
- 5行代码实现微信小程序图片上传与腾讯免费5G存储空间的使用
本文介绍了如何在微信小程序开发中使用腾讯官方提供的云开发功能快速实现图片的上传与存储,以及介绍云开发的 5G 存储空间的基本使用方法,这将大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频 ...
- [Alpha阶段]第六次Scrum Meeting
Scrum Meeting博客目录 [Alpha阶段]第六次Scrum Meeting 基本信息 名称 时间 地点 时长 第六次Scrum Meeting 19/04/10 教2 1层 50min 相 ...
- Python——正则模块
1.re模块是用来操作正则表达式 2.正则表达式——用来字符串匹配的 (1)字符组:[字符组] 例如[0123fdsa456*/-] [0-9] 等同于[0123456789] [a-z] 匹配小写 ...
- Win10图片打不开文件系统错误2147416359解决方法
该问题表现为win10打开所有图片都会提示这个‘文件系统错误-2147416359’,打开其他文件没问题.此问题应该是win10自带的图片查看器出了故障. 在网上找到如下方案,但是我的服务列表里没有这 ...
- eclipse安装Activiti
一. eclipse自己下载 打开eclipse软件,然后点击菜单栏的help选项,选择install New Software,示例如下: 出现如下对话框: 点击添加[Add]按钮,出现如下对话框 ...
- python之旅十【第十篇】paramiko模块
paramiko模块介绍 ssh的远程连接 基于用户名密码的连接 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_h ...
- python之路day05--字典的增删改查,嵌套
字典dic 数据类型划分:可变数据类型,不可变数据类型 不可变数据类型:元组,bool,int str -->可哈希可变数据类型:list,dict,set --> 不可哈希 dict k ...
- 关于进程、线程、应用程序域(AppDomain)
什么是进程?什么是线程?什么是应用程序集?及三者之间的关系(以下做一些简单的概念性的理解) 三者共同的基础对象!!!——应用程序 1.进程是操作系统用于隔离众多正在运行的应用程序的机制,进程的缺点是降 ...
- rsync实时同步服务部署
部署rsync服务 一.需求:把客户端文件同步到服务端指定位置服务端:备份服务器为 172.16.3.164客户端:推送服务器为 172.16.3.94 二.基础知识: rsync 分为服务器端.客户 ...
- Linux设备树(六 memory&chosen节点)
六 memory&chosen节点 根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点.memory节点用来描述硬件内存布局的.如果有多块内存,既可以通过多个memo ...