docker入门及常用命令
Docker简介
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
Docker官网:https://www.docker.com/
Docker的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker 的优点
1、简化程序:
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。
2、避免选择恐惧症:
如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3、节省开支:
一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。
Docker的架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker 和虚拟机的区别
Docker是一种轻量级的虚拟化技术,比传统的虚拟机性能更好。
下图是虚拟机的体系结构:
server - 表示真实电脑。
Host OS - 真实电脑的操作系统,例如:Windows,Linux
Hypervisor - 虚拟机平台,模拟硬件,如VMWare,VirtualBox
Guest OS - 虚拟机平台上安装的操作系统,例如CentOS Linux
App - 虚拟机操作系统上的应用,例如nginx
下图是Docker的体系结构:
server - 表示真实电脑。
Host OS - 真实电脑的操作系统,例如:Windows,Linux
Docker Engine - 新一代虚拟化技术,不需要包含单独的操作系统。
App - 所有的应用程序现在都作为Docker容器运行。
这种体系结构的明显优势是,不需要为虚拟机操作系统提供硬件模拟。所有应用程序都作为Docker容器工作,性能更好。
Centos7安装Docker
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。
社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。
我们平时用社区版就足够了。所以我们安装社区版;
我们主要参考:https://docs.docker.com/install/linux/docker-ce/centos/ 来安装;
我们切换到root用户
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ yum update
3、卸载旧版本(如果安装过旧版本的话)
$ yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6,安装最新版本的Docker
$ yum install docker-ce docker-ce-cli containerd.io
如果出现下面问题
遇到这种情况有两种做法:
1、没网,试着:ping www.baidu.com
如果显示没有连接的话,就说明没网,也就无法使用yum 命令。
2、ping通了的话,还是是用不了yum命令,说明是yum镜像没有了,那么就得下载一个来更新。
在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度。国内比较快的有163源、sohu源。这里以163源为例子。
A、 cd /etc/yum.repos.d
B、 mv CentOS-Base.repo CentOS-Base.repo.backup
C、wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
D、mv CentOS6-Base-163.repo CentOS-Base.repo
E、yum clean all
最后在使用yum 就可以了。
7,启动Docker并设置开机启动
$ systemctl start docker
$ systemctl enable docker
8,验证Docker
$ docker version
说明安装OK;
9,Docker HelloWorld测试;
$ docker run hello-world
默认的远程仓库 https://hub.docker.com/ 网速稀烂
配置下阿里云的镜像仓库
阿里云镜像仓库
Docker默认远程仓库是https://hub.docker.com/
比如我们下载一个大点的东西,龟速
由于是国外主机,类似Maven仓库,慢得一腿,经常延迟,破损;
所以我们一般都是配置国内镜像,比如阿里云,网易云等;推荐阿里云,稳定点;
配置步骤如下:
1,登录进入阿里云镜像服务中心,获取镜像地址
进入阿里云容器镜像服务地址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
使用你的淘宝账号密码登录
2,在/etc/docker目录下找到在daemon.json文件(没有就新建),将下面内容写入
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
3,重启daemon
systemctl daemon-reload
4,重启docker服务
systemctl restart docker
Docker基本命令
启动Docker
systemctl start docker
停止Docker
systemctl stop docker
重启Docker
systemctl restart docker
开机启动Docker
systemctl enable docker
查看Docker概要信息
docker info
查看Docker帮助文档
docker --help
查看Docker版本信息
docker version
Docker镜像常用命令
1,docker images 列出本机所有镜像
docker images
列出本机所有镜像
输出表格字段说明:
OPTIONS可选参数:
2,docker search 搜索镜像
和 https://hub.docker.com/ 这里的搜索效果一样;
OPTIONS可选参数:
3,docker pull 下载镜像
docker pull 镜像名称:[TAG]
注意:不加TAG,默认下载最新版本latest
4,docker rmi 删除镜像
1,删除单个:docker rmi 镜像名称:[TAG]
如果不写TAG,默认删除最新版本latest
有镜像生成的容器再运行时候,会报错,删除失败;
我们需要加 -f 强制删除
2,删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]
中间空格隔开
3,删除全部:docker rmi -f $(docker images -qa)
容器常用命令
1、Docker创建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
OPTIONS可选参数:
启动普通容器: docker run --name 别名 镜像ID
启动交互式容器: docker run -it --name 别名 镜像ID 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;
实例:
docker run -it --name mycentos01 5e35e350aded
注意:
1、启动普通容器的方式基本不用,没有伪终端,没有太大价值;
2、启动交互式容器的方式,容器一创建完毕,立即进入伪终端
守护式方式创建并启动容器
docker run -di --name 别名 镜像ID
实例:
docker run -di --name mycentos02 67fa590cfc1c
执行完命令后,终端依然再宿主机上;
启动容器,并执行/bin/bash命令;
docker run -it --name 别名 镜像ID /bin/bash命令
端口映射;
docker run -it -p 8888:8080 tomcat
docker run -it -P tomcat
2、Docker列出容器
docker ps [OPTIONS]
OPTIONS说明:
docker ps 查看正在运行的容器
docker ps -a 查看所有容器
docker ps -n 2 显示最近创建的2个容器
docker ps -f status=exited 查看停止的容器
2、Docker退出容器
exit 容器停止退出 ctrl+P+Q 容器不停止退出
3、Docker进入容器
docker attach 容器ID or 容器名
4、Docker进入容器
docker attach 容器ID or 容器名
docker exec -it 容器名称 或者 容器ID 执行命令
实例:
docker exec -it tomcat02 ls -l /root/webapp02
直接操作容器,执行完 回到 宿主主机终端;
我们一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等
5、Docker启动容器
docker start 容器ID or 容器名
6、Docker重启容器
docker restart 容器ID or 容器名
7、Docker停止容器
docker stop 容器ID or 容器名
暴力删除,直接杀掉进程 (不推荐)
docker kill 容器ID or 容器名
8、Docker删除容器
docker rm 容器ID
如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;
强制删除docker rm -f 容器ID
删除多个容器
docker rm -f 容器ID1 容器ID2 中间空格隔开
删除所有容器
docker rm -f $(docker ps -qa)
9、Docker容器日志
$ docker logs [OPTIONS] CONTAINER
推荐做法:简单粗暴方式,直接去docker容器文件里找;
具体位置:/var/lib/docker/containers/
docker入门及常用命令的更多相关文章
- Docker 入门指南——常用命令
前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...
- Docker入门以及常用命令
目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...
- Docker入门之常用命令
写在前面 细数当前最流行的技术莫过于容器化和人工智能了,而容器化技术能有今天的热度,Docker可谓功不可没. 让我们一起来回顾一下Docker 是什么? 是一种虚拟化技术 能够将应用程序自动部署到容 ...
- Docker的入门及常用命令
Docker入门及常用命令 1. 各个容器之间是相互隔离状态: 这样减少了我们软件之间的影响. 2. docker是os层虚拟化架构的一种产品体现, os层虚拟化架构出来的操作系统需要和宿主机操作系统 ...
- Docker基础和常用命令
Docker基础和常用命令 一,Docker 简介 1.1,什么是 Docker Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,nam ...
- docker 安装与常用命令与常用容器(containers)环境
注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...
- Docker系列之常用命令操作手册
目录 1.安装虚拟机 2.安装Docker 3.Docker镜像操作 4.Docker容器操作 Docker系列之常用命令操作手册 继上一篇博客Docker系列之原理简单介绍之后,本博客对常用的Doc ...
- Docker(2):快速入门及常用命令
什么是Docker? Docker 是世界领先的软件容器平台.开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题.运维人员利用 Docker 可以在隔离容器中并行运行和管理 ...
- Docker三剑客之常用命令
一.docker-machine 命令 说明 docker-machine create 创建一个 Docker 主机(常用-d virtualbox) docker-machine ls 查看所有的 ...
随机推荐
- PASS-单组目标值法的样本量计算
临床试验的参数估计中,评价指标有确定的估计目标 ,临床试验目的需通过参数估计(含相应的可信区间估计)的方法证明评价指标不低于目标值时,可根据单组目标值法样本量公式计算. 例:欲证明器械A的诊断准确性非 ...
- 重返MySQL之MySQL基础
重返MySQL之MySQL基础 本章详细介绍了,什么是数据库,常见的关系型数据库有哪些,什么是MySQL,及MySQL中DDL操作表,DML操作表记录. 1.0 数据库概述 1.1 数据存储的方式 目 ...
- Alibaba-技术专区-Dubbo3总体技术体系介绍及技术指南(目录)
Dubbo3开题简介 如开篇所述,Dubbo 提供了构建云原生微服务业务的一站式解决方案,可以使用 Dubbo 快速定义并发布微服务组 件,同时基于 Dubbo 开箱即用的丰富特性及超强的扩展能力,构 ...
- U盘自动弹出脚本
需要微软的Sysinternals Suite中的sync工具,解压到d:\apps下. ahk脚本: #u:: ; eject usb drive InputBox, myInp, Remove U ...
- Java 在PPT中插入OLE对象
PPT幻灯片中支持将文档作为OLE对象插入到PPT幻灯片指定位置,在幻灯片中可直接点击该对象,打开或编辑等.下面以插入Excel工作簿文档为例,介绍如何来插入到幻灯片. 程序运行环境 编译环境:I ...
- SpringBoot开发二十-私信列表
私信列表功能开发. 发送私信功能开发 首先创建一个实体类:Message package com.nowcoder.community.entity; import java.util.Date; p ...
- Ubuntu系统Root用户无法登录
默认 系统 root 登录 图形界面,出现 登录失败.解决方法如下: 1,登录普通用户, 打开终端执行命令, 使用su root或sudo -i切换到root用户(必须) su root 按照提示输入 ...
- sqli-labs lesson 38-45
从page3也就是less 38开始进入了堆叠注入(stacked injection) stacked injection: 简单来说就是进行SQL注入时注入了多条语句.因为之前我们都是只进行过注入 ...
- STM32—驱动六轴MPU6050输出欧拉角
文章目录 一.MPU6050介绍 1.MPU6050与陀螺仪.加速度计的关系: 2.整体概括 3.引脚说明 4.基本配置及相关寄存器 电源管理寄存器1 陀螺仪配置寄存器 加速度计配置寄存器 FIFO使 ...
- 5 秒克隆声音「GitHub 热点速览 v.21.34」
作者:HelloGitHub-小鱼干 本周特推的 2 个项目都很好用,Realtime-Voice-Clone-Chinese 能让你无需开启变声音,即可获得一个特定声音的语音.这个声音可以是你朋友的 ...