Docker介绍及基础命令

什么是Docker?

Docker 是一种容器技术,它不依赖任何语言、框架或系统,可以将应用变成一种标准化的、可移植的、自管理的组件,并脱离硬件平台在任何主流系统中开发、调试和运行。docker是一个基于LXC容器技术又对其进行优化升级扩展的管理工具,提供一系列更强的功能,如可移植性、自动化构建(dockerfile)、版本控制、镜像管理等。

Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是docker提出的“Build once,Run anywhere”。

基础技术及核心组件

1.lxc,Linux Container的简写,是一种基于容器的操作系统层级的虚拟化技术,与宿主机共享内核,用namespace和cgroup实现资源隔离。lxc是linux内核一个特性,它允许进程或进程组运行在一块独立的空间,并能对其控制。并实现容器与宿主机资源共享。

2.namespace,cgroup是namespace的用户空间的管理接口。并对进程或进程组之间隔离,如User,Mnt,Network,UTS,IPC,Pid。

3.unionfs 典型的有aufs/overlayfs 支持将不同目录挂载到同一个虚拟文件系统。docker容器分为只读的镜像层与上面可写层,AUFS实现在可写层上进行增量的修改(增量文件系统)。在docker中,只读层及在顶部的读写层的组合被称为Union File System,UFS(联合文件系统),目前支持的联合文件系统种类包括 AUFS、btrfs、vfs和DeviceMapper。由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作为docker的存储引擎。

4.chroot,使容器运行在指定的目录内。cgroup是在底层实现资源管理,lxc在cgroup上封装了一层,docker又在lxc封装了一层。

 

ü 主机:运行容器的机器,物理机

ü 镜像:文件的层次结构,以及包含如何运行容器的元数据, Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上

ü 容器:一个从镜像中启动,包含正在运行的程序的进程

ü Registry(镜像仓库):存放镜像的地方,如Docker Hub是dotDokcer公司私有,目前国内有DaoCloud提供代理缓存服务

ü Volumn(卷):将物理机的文件夹挂载到容器内部.与openstack的volumn不一样,openstack中的卷是块存储,不能共享。而这里的volumn可以共享。

ü Dockerfile:用于创建镜像的脚本

ü docker Client:向docker服务器进程发起请求,如:创建、停止、销毁容器等操作,docker Server:处理所有docker的请求,管理所有容器

1、Docker安装与使用:

操作系统:centos7

#yum install docker

启动服务:

#systemctl start docker

2、下载centos镜像

#默认下载最新版tag为latest,不指定registry默认是官方docker Hub

#docker pull centos
#docker pull docker.io/tomcat
#docker pull daocloud.io/tomcat

3、在镜像里打印hello

#docker run centos /bin/echo hello

打印出hello说明已经成功安装docker并启动一个容器!

4、常用基础命令

查看docker环境信息

#docker version

#docker  info

在仓库中搜索相关的镜像

#docker search centos

下载镜像(可以指定tag,不指定默认下载最新的即:latest)

#docker pull centos

查看已下载的镜像

#docker images

查看镜像或容器详细信息

#docker inspect mytomcat (镜像或容器名)

#启动镜像并进入容器(多个centos版本需指明:tag)

#docker run -it -d --name=centos centos: latest

run命令选项:

-t 模拟一个终端,-i交互式,-d 后台运行容器,--name 为容器指定名称

查看正在运行的容器,-a显示所有容器包括停止的 ,-l 显示最后一次运行的

#docker run -d --name centos7 centos  (centos7为镜像名,centos容器名)

进入容器并退出(centos7为容器名,可以用ID,ID可以简写,ctrl+d或exit退出)

#docker exec -it centos7 /bin/bash

在容器里执行命令

#docker exec ID/NAME df -h

查看正在运行的容器,-a 显示所有的包含停止的,-l显示最后一次运行的

#Docker ps

#Docker ps -a

查看容器日志信息,可以加-f监控输出

#Docker logs NAME/ID

如:docker logs -f mariadb55

删除镜像,如果有容器在使用镜像将不能删除

#docker rmi images_name

删除容器, -f强行删除正在运行的容器

#docker rm -f NAME

给镜像打标签(镜像修改过或要向私有仓库push镜像时用到

#docker tag docker.io/tomcat:latest  xxxx/tomcat:7.0.60

#关闭运行的容器(start/restart)

#docker stop  ID

#关闭所有运行的容器

#docker kill $(docker ps -q)   (-q只显示ID)

映射端口,将容器的端口映射到宿主机

#docker run -d -p 80:8080 tomcat

挂载数据卷,将窗口目录挂载到宿主机目录,持久化数据

#docker run -d -p 3306:3306 -v /mydata/mysql:/var/lib/mysql mariadb5

#列出容器内容文件状态变化情况

#docker diff ID

注:A - Add,D - Delet , C - Change

#查看容器资源使用情况

#docker stats

时间: 2024-10-24 11:09:53

Docker介绍及基础命令的相关文章

docker学习(2)--基础命令

转载请注明源出处:http://www.cnblogs.com/lighten/p/6875355.html 1.基本命令 搭建好docker环境之后,使用docker help命令查看docker的基本用法: docker COMMAND. 目前我们较为常使用的是commands下面的指令,如果使用swarm相关功能会用到management commands.目前我使用的是17.03.1-ce,后续版本功能应该会更加细分,可能会替换成management来使用.比如docker images

docker简介和基础命令

一.Docker 概述 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护.Docker 自开源后受到广泛的关注和讨论, 以至于 dotCloud 公司后来都改名为 Docker Inc.Redhat 已经在其 RHEL6.5 中集中支持 Docker:Google 也在其 PaaS

docker系列之基础命令-1

1.docker基础命令 docker images 显示镜像列表 docker ps 显示容器列表 docker run IMAGE_ID 指定镜像, 运行一个容器 docker start/stop/pause/unpause/kill/restart CONTAINER_ID 操作容器状态 docker tag IMAGE_ID [REGISTRYHOST/][USERNAME/]NAME[:TAG] 给指定镜像命名 docker pull/push NAME:TAG 下载, 推送镜像到 

Linux的简单介绍和基础命令(上)

一.Linux简要介绍 Linux命令基础 Linux命令帮助 目录与文件基本操作 Linux家族 Redhat 红帽 三个认证 (开源但是不免费)--->社区(系统开发者)--->Centos(服务器端) Ubuntu 最好的客户端系统,开源纯免费(软件开发人群) Debian --->kali Linux(专用工具资源占用很少) 树莓派 suse Linux--->ISP(电信,移动,联通) 定制版 shell--Linux系统的一种特殊程序--"翻译官"

Linux的简单介绍和基础命令(下)

三.Linux的目录结构 树形目录结构 /etc 管理员的家目录 /home 普通用户家目录 /bin 所有用户的命令文件目录 /sbin 管理员命令文件目录 /boot 启动分区(grub启动菜单,压缩内核等) /usr 应用程序目录 /etc 配置文件目录 /var 可变长文件目录(日志) /dev 设备文件目录(磁盘,光驱) /tmp 临时文件 /proc 硬件信息(CPU 内存) /lib 服务管理文件(systemctl) 查看文件内容命令 cat [] 文件名 ... :查看文件内容

Docker 基础命令介绍

Docker是一种C/S结构,所以就会有客户端和服务端.Docker支持很多子命令,例如我们在命令行docker然后tab键会出来很多命令 当然docker工具很多,除了 docker 命令行工具,用户也可以通过 REST API 与服务器通信 Docker daemon是服务器组件,以 Linux 后台服务的方式运行.可以通过命令:systemctl status docker.service看到 Docker daemon 运行在 Docker host 上,负责创建.运行.监控容器,构建.

Docker实战(一):Docker基础命令

Docker基础命令 下面简单介绍一下Docker常用的一些基础命令 # 在ubuntu中安装docker $ sudo apt-get install docker.io # 查看docker的版本信息 $ docker version # 查看安装docker的信息 $ docker info # 查看本机Docker中存在哪些镜像 $ docker images # 检索image $ docker search ubuntu:14.04 # 在docker中获取ubuntu镜像 $ do

1. Docker基础命令

本文简要介绍Docker的基础命令,目的在于快速入门Dokcer,Docker的完整命令可以参考Docker官方手册. Docker的子命令非常多,可以使用 docker [help|--help|-H|-h] 查看Docker完整子命令 $ docker Usage: docker COMMAND ... Commands: attach Attach local standard input, output, and error streams to a running container

Docker基础命令详解——镜像及容器操作

Docker基础命令详解--镜像及容器操作 前言 ? 上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令. ? 当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示命令. Docker镜像操作命令 [[email protected] ~]# which docker /usr/bin/docker 1.镜像搜索:docker sear