docker概述

容器技术已经成为应用程序封装和交付的核心技术
容器技术的核心有以下几个内核组成
CGroups-资源管理
NamsSpace-进程管理
SElinux-安全

由于是在物理机上实施隔离,启动一个容器,可以像启动一个进程一样快速
docker是完整的一套容器管理系统,提供了一组命令,绕过用户更加方便直接的使用容器技术
不需要过多关系底层内核技术

优点:相对于传统的虚拟化技术,容器更加简洁高效,传统虚拟机需要给每个vm安装操作系统
      容器使用共享库和程序

缺点:容器的隔离性没有虚拟化强,共用Linux内核,安全性有先天缺陷
      selinux难以驾驭,监控容器和容器排错是挑战

docker基本概念
镜像:在docker中容器是基于镜像启动的,镜像是启动容器的核心
      镜像采用分层设计,使用快照的cow技术,确保底层数据不丢失
      查看镜像用docker images ,官方提供的镜像仓库https://hub.docker.com

镜像命令列表
docker images(查看镜像列表)
docker history(查看镜像制作历史)
docker inspect(查看镜像详细信息)
docker pull(下载镜像)
docker push(上传镜像)
docker rmi(删除本地镜像)
docker save(镜像另存为tar包)
docker load(使用tar包导入)
docker search(搜素镜像)
docker tag(修改镜像名称和标签)

容器命令列表
docker run(运行容器)
docker ps(查看容器列表)
docker start/stop/restart(启动/停止/重启容器)
docker attach(进入容器)
docker exec(进入容器)
docker inspect(查看容器详细信息)
docker top(查看容器进程列表)
docker rm(删除容器)
docker create -it centos(create创建一个容器而 不启动)

docker安装(需要64位的操作系统,强烈推荐centos7以上的版本,关闭iptables)
[root@x ~]# rpm -ivh docker-engine
[root@x ~]# rpm -ivh docker-engine-selinux或者直接yum -y install docker
[root@x ]# systemctl start docker(启动服务)
[root@x ]# docker version (查看docker信息)
Client:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-68.gitec8512b.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      ec8512b/1.12.6
 Built:           Mon Dec 11 16:08:42 2017
 OS/Arch:         linux/amd64

Server:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-1.12.6-68.gitec8512b.el7.centos.x86_64
 Go version:      go1.8.3
 Git commit:      ec8512b/1.12.6
 Built:           Mon Dec 11 16:08:42 2017
 OS/Arch:         linux/amd64

镜像操作
[root@x ]# docker search xx(搜索镜像)
[root@x ]# docker pull xx(下载镜像)
[root@x ]# docker push xx(上传镜像)
[root@x ]# docker images(查看镜像库)
[root@x ]# docker rmi xx(删除镜像)
[root@x ~]# docker load < xx.tar(导入镜像,通过tar包文件导入镜像)
[root@x ~]# docker save image_name > x.tar(导出镜像,将本地镜像到出为tar文件)

容器操作
[root@x ~]# docker run -itd centos(启动交互式容器,并在后台运行)
[root@x ]# docker stop container id(停止容器)
[root@x ]# docker rm container id(删除容器)
[root@x~]# docker ps -a(查所有容器)
[root@x~]# docker ps -l(查看在运行的容器)
[root@x~]# docker attach container id bash(进入在运行的容器,退出是会关闭容器)
[root@x~]# docker exec container id bash(进入在运行的容器,退出不会关闭容器,execl后面不加bash可能会报错)

实例:
[root@x docker]# docker pull docker.io/nginx
[root@x docker]# docker pull docker.io/mysql/mysql-server
[root@x docker]# docker pull docker.io/php
[root@x docker]# docker pull docker.io/tomcat
[root@x docker]# docker pull docker.io/centos
[root@x ~]# docker run -itd centos(在后台运行)
[root@x ~]# docker ps -a(查看信息)
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
cfe74af0de3e        centos              "/bin/bash"         14 seconds ago      Exited (0) 13 seconds ago                       sleepy_snyder
[root@x ~]# docker attach cfe74af0de3e (进入容器)
[root@x ~]# docker stop cfe74af0de3e(停止容器)
cfe74af0de3e
[root@x ~]# docker rm cfe74af0de3e(删除容器,正在运行的容器先停止在删除)
cfe74af0de3e
[root@x ~]# docker rm $(docker ps -qa)(容器太多时可以用脚本删除)

docker概述及基础操作的更多相关文章

  1. docker入门之基础操作

    docker,我们可以把docker当作是简单的虚拟机.但这个虚拟机不像vm一样安装系统.所以我们又称之为容器.你可以理解成,容器就是虚拟机 docker与vm的对比 vmware:下载镜像——安装系 ...

  2. docker入门2:基础操作(1)

    -- 列出所有的容器 docker ps -a  (没有-a就是只列出启动的) -- 开启/关闭/移除容器 docker start|stop|rm CONTAINER_ID|CONTAINER_NA ...

  3. docker安装和基础操作

    docker安装 yum install docker 配置镜像下载加速器 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...

  4. docker入门3:基础操作(2)

    -- 容器删除 docker rm CONTAIN_ID|CONTAIN_NAME -- 镜像删除 docker rmi IMAGE_ID|IMAGE_NAME -- 进入容器 docker exec ...

  5. 二、Docker基础操作

    原文:二.Docker基础操作 一.下载镜像 命令:docker pull xxxxxx(镜像名) docker pull training/weapp 二.运行镜像 docker run -d -P ...

  6. Docker基础操作

    安装 ubuntu16.04安装docker sudo apt-get update sudo apt-get install docker sudo apt-get install docker.i ...

  7. Docker 安装和基础用法

    理解Docker(1):Docker 安装和基础用法 本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 ...

  8. 1、Docker概述与安装

    1.Docker概述 原文地址:https://docs.docker-cn.com/engine/docker-overview/#docker-engine Docker是一个开发,集装,运行应用 ...

  9. Docker 简介与shell操作使用

    一.Docker概述 1.Docker简介        Docker是一个开源的应用容器引擎:是一个轻量级容器技术:Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去 ...

随机推荐

  1. 字符串,字符数组(C/C++)

    这个地方困惑我好久了,废话不多说 char c1[]="12345"; char *c2="12345"; string c3="12345" ...

  2. Spring AOP面向切面编程详解

    前言 AOP即面向切面编程,是一种编程思想,OOP的延续.在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等等.在阅读本文前希望您已经对Spring有一定的了解 注:在能对代码进行添 ...

  3. pl/sql Command Window

    由于工作需要,最近需要执行sql脚本,之前一直在用执行按钮操作,但最近公司制定了一套标准,其中就有执行sql脚本规范: 以前执行存存储过程: 现在修改存储过程如下: 第一步,打开对应窗口: 第二步,输 ...

  4. Docker02 基本命令、开发环境搭建、docker安装nginx、Dockerfile、路径挂载

    1 基本命令 1.1 docker相关 centos6.5 安装docker环境 >sudo yum install -y http://mirrors.yun-idc.com/epel/6/i ...

  5. Visual Studio + C# + Xamarin = iOS/Android/Windows Apps

    Visual Studio 跨平台開發實戰 (1) -- Hello Xamarin! 前言 應用程式發展的腳步,從來沒有停過.從早期的 Windows 應用程式, 到網路時代的 web 應用程式,再 ...

  6. 70个HR面试题

    请你自我介绍一下你自己,      回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最深入研究的知 ...

  7. 面试题:Java集合面试题(40道) 背1

    Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言 ...

  8. Python学友

    独学而无友,则孤陋而寡闻,python学习过程中希望多和学友交流,一起进步. 开源中国 j_hao104 微信公众号: Pythoner每日一报 https://my.oschina.net/jhao ...

  9. activex打包

    http://www.cnblogs.com/weiwin/p/4493835.html activeX 打包   原文 http://www.docin.com/p-409284488.html C ...

  10. 7.python实现高效端口扫描器之nmap模块

    对于端口扫描,使用的最多的就是nmap这个工具,不想python已经强大到,提供了nmap这个扫描端口的模块. 本片文章主要介绍nmap模块的两个常用类: PortScanner()类,实现一个nma ...