docker安装与基本使用
一、docker简介
- docker的英文翻译是 “码头工人”,即搬运工,它搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App。
我们的开发人员可以通过Docker将App变成一种标准的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。
从概念上来看,Docker和传统的虚拟机比较类似,只是更轻量级,更方便使用。
特性 |
容器 |
虚拟机 |
启动 |
秒级 |
分钟级 |
硬盘使用 |
一般为MB |
一般为GB |
性能 |
接近原生 |
弱于 |
系统支持量 |
单机支持上千个容器 |
一般几十个 |
管理效率 |
管理简单 |
概念里复杂 |
1、容器的特性
标准化
- 保证一致的运行环境
- 弹性伸缩,快速扩容
- 方便迁移
- 持续集成、持续交付与持续部署
高性能
- 不需要进行硬件虚拟以及运行完整的操作系统
轻量级
- 快速启动
隔离性
- 进程隔离
2、docker引擎
Docker引擎是一个C/S 架构的应用程序
- 常驻后台进程Dockerd
- 一个用来与Dockerd交互的REST API Server
- 命令行CLI接口,通过与REST API进行交互
3、Docker 三大核心
镜像(Image)
Docker 镜像是 Docker 容器运行时的只读模板,镜像可以用来创建 Docker 容器。每一个镜像由一系列的层(layers)组成。
容器(Container)
Docker 利用容器来运行应用,一个 Docker 容器包含了所有的某个应用运行所需要的环境。每一个 Docker 容器都是从 Docker 镜像创建的。容器是从 镜像创建的运行实 例它可以被启用、开始、停 止,删除。每个容器都是互 相隔离的,保证安全的平台。
仓库(Repository)
Docker 仓库是用来集中保存镜像的地方,当创建了自己的镜像后,可以使用 push 命令将它上传到共有仓库(Public)或者私用仓库(Private),这 样一来当下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。
二、docker的安装
Docker版本介绍
- docker-ce:当前docker发行版本
- docker-ee:docker商业版本
1、 先卸载掉旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装需要的依赖包
yum install -y yum-utils
3、设置镜像仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认国外的比较慢
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐阿里云的,下镜像比较快。
#更新软件包索引
[root@localhost ~]# yum makecache fast
4、安装docker相关内容 docker-ce 社区版 ee企业版
yum install docker-ce docker-ce-cli containerd.io
在某些版本之后,【docker-ce】安装出现了其他依赖包,如果安装失败的话请关注错误信息
例如【docker-ce 17.03】之后,需要先安装【docker-ce-selinux】
安装完docker-ce-selinux再重新安装就可以了
5、启动docker并查看状态
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
6、使用docker version命令查看docker版本
[root@localhost ~]# docker version
7、配置文件说明
在docker-ce中,已废弃/etc/sysconfig/docker这种配置方式,转而采用/etc/docker/daemon.json来配置
将docker的下载镜像的仓库,修改为国内的阿里镜像仓库
[root@localhost ~]# mkdir -p /etc/docker
[root@localhost ~]# cd /etc/docker
[root@localhost docker]# vim daemon.json
{
"registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"]
}
修改完成后重启docker
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# systemctl enable docker
8、docker常用命令
docker version 显示docker的版本信息
docker info 显示docker的系统信息,包括镜像和容器的数量
docker --help docker的帮助命令
帮助文档的地址: https://docs.docker.com/reference/
docker镜像命令
docker images 查看镜像
#解释
REPOSITORY:镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像的ID
CREATED:镜像的创建时间 SIZE:镜像的大小
#可选项
-a:#列出所有镜像 -q:#只显示镜像的id
docker search 名称 #镜像搜索命令
docker pull 镜像名称 #拉取镜像
[root@localhost ~]# docker pull nginx
docker rmi 镜像名称 #删除镜像
[root@localhost ~]# docker rmi nginx
docker rmi -f 镜像名称 #删除指定的镜像
docker rmi -f 镜像名称 镜像名称 镜像名称 #删除多个镜像
docker rmi -f $(docker images -aq) #删除全部镜像
docker容器命令
容器即进程,一个容器什么时候会退出,当容器中的程序运行完成,或者容器中的程序放后台运行,容器都会退出。
说明:我们有了镜像才可以创建容器,下载一个centos镜像来学习
[root@localhost ~]# docker pull centos:7
docker run [可选参数]
- -name 给容器起一个方便辨别的名字
- d 后台方式启动
- t 配置一个伪终端并绑定到容器的标准输入上
- i 让容器的标准输入保持打开
- it 使用交互方式运行,进入容器查看内容
- p 指定容器的端口 –p 80:80 #主机端口:容器端口
- P 随机指定端口
- c 指定分配该容器的cpu分片
- m 指定分配给该容器的内存大小
进入容器
[root@localhost ~]# docker run -d -P nginx
d3efb256ba0a0390e93b1953aeb205d3dde656cc8be27e83c4a648716b206335
-d 放后台运行 -P 表示随机映射nginx的默认端口
docker ps 命令 #: 列出当前正在运行的容器
-a #:列出当前正在运行的容器+历史运行过的容器
-n=? #:列出最近创建的容器
-q #:只显示容器id
-l #:显示最后一次创建的容器
退出容器
exit #直接容器停止并退出
Ctrl + P + Q #容器不停止退出
删除容器
Docker rm 容器id #删除指定的容器 不能删除正在运行的容器,如果要强制删除 rm -f
Docker rm -f $(docker ps -aq) #删除所有的容器
启动和停止容器的操作
Docker start 容器id # 启动容器
Docker restart 容器id # 重启容器
Docker stop 容器id # 停止当前正在运行的容器
Docker kill 容器id # 强制停止当前运行的容器
导出和载入镜像
[root@localhost ~]# docker save -o centos7.tar centos:7 #将本地镜像导出
[root@localhost ~]# docker load -i centos7.tar #将本地文件导入
修改镜像名字打标签
[root@localhost ~]# docker tag centos:7 centos:7.4 #把centos:7镜像打标签为centos:7.4
查看镜像的详细信息
[root@localhost ~]# docker inspect nginx
docker安装与基本使用的更多相关文章
- 理解Docker(1):Docker 安装和基础用法
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- docker安装
系统要求:需要一个64位的centos7操作系统和版本3.10或更高版本的Linux内核 开始安装: uname -r //查看内核版本yum -y update //更新系统更新到最新 #安装d ...
- 2. Docker - 安装
一.Docker介绍 1. Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上, 也可以实现虚拟化. 容器时完全使用沙 ...
- Docker 安装部署
Docker学习笔记 一.Ubuntu Docker 安装 (1).获取最新版本Docker安装包 lyn@lyn:/data/docker$ sudo wget -qO- https://get.d ...
- docker 安装
Docker使用了一种叫AUFS的文件系统,这种文件系统可以让你一层一层地叠加修改你的文件,最底下的文件系统是只读的,如果需要修改文件,AUFS会增加一个可写的层(Layer),这样有很多好处,例如不 ...
- Docker安装及基本使用方法
Docker安装 CentOS6上安装Docker # yum -y install epel-release # yum -y install docker-io CentOS7上安装Docker ...
- Mac 下 docker安装
http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...
- docker安装caffe
[最近一直想要学习caffe,但是苦苦纠结于环境安装不上,真的是第一步都迈不出去,还好有docker的存在!下面,对本人如何利用docker安装caffe做以简单叙述,不属于教程,只是记录自己都做了什 ...
- Docker安装Gitlab
一.Ubuntu16.4上Docker安装Gitlab 1.安装docker 参见:https://docs.docker.com/engine/installation/linux/ubuntuli ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
随机推荐
- linux开放端口关闭防火墙
linux开放端口关闭防火墙 systemctl status firewalld查看当前防火墙状态. 开启防火墙 systemctl start firewalld开放指定端口 ...
- unittest测试框架
unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...
- Hybrid App(混合开发) 移动端开发调试
1.下载项目,npm install安装依赖 本地运行 npm run dev(根据具体packjson配 置而定) 2.局域网访问:http://172.20.9.35:8080/ 3.手机端访问: ...
- rocketmq之延迟队列(按照18个等级来发送)
1 启动消费者等待传入的订阅消息 import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache ...
- 【JavaWeb】CVE-2016-4437 Shiro反序列化漏洞分析及代码审计
Shiro反序列化漏洞分析及代码审计 漏洞简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. Apache Shiro默认使用了CookieRe ...
- 【机器学习】GMM和EM算法
机器学习算法-GMM和EM算法 目录 机器学习算法-GMM和EM算法 1. GMM模型 2. GMM模型参数求解 2.1 参数的求解 2.2 参数和的求解 3. GMM算法的实现 3.1 gmm类的定 ...
- 腾讯云轻量服务器通过Docker搭建外网可访问连接的redis5.x集群
总结记录/朱季谦 最近买了一台4核16的腾讯云轻量应用服务器,花了我快四百的大洋,打算搭建一堆docker组件集群,最先开始是通过docker搭建redis集群,计划使用三个端口,分别是7001,70 ...
- 在Chrome中打开网页时出现以下问题 您的连接不是私密连接 攻击者可能会试图从 x.x.x.x 窃取您的信息(例如:密码、通讯内容或信用卡信息)
现象:在Chrome中打开网页时出现以下问题 您的连接不是私密连接 攻击者可能会试图从 x.x.x.x 窃取您的信息(例如:密码.通讯内容或信用卡信息). 当点开"了解详情"后显示 ...
- 为什么 Redis 的查询很快, Redis 如何保证查询的高效
Redis 如何保证高效的查询效率 为什么 Redis 比较快 Redis 中的数据结构 1.简单动态字符串 SDS 对比 c 字符串的优势 SDS可以常数级别获取字符串的长度 杜绝缓冲区溢出 减少修 ...
- java中的继承 和多态。
package com.aaa.zxf.ajax.test; /** *一. java 中的继承和多态. * * 继承的特性? * 1.实现继承的方式 * A 如何建立继承关系(一个类继承于 另一个类 ...