Docker安装与基本使用

Docker 简介

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余 项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。 Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux容器(LXC)等技术。 (背景),云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,docker趁势而兴。

为什么用 Docker

容器的启动可以在秒级实现,比传统的虚拟机方式要快得多对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器docker 的出现,让开发/测试/线上的环境部署,成为便利一条龙。

更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直 接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过 程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器 很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实 现更高的性能和效率。

更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、 个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以 增量的方式被分发和更新,从而实现自动化并且高效的管理。

Docker 基本概念

Docker 镜像

Docker 镜像就是一个只读的模板。 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。 镜像可以用来创建 Docker 容器。 Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接 从其他人那里下载一个已经做好的镜像来直接使用。

Docker 容器

Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

Docker 仓库

仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。

容器、镜像的运行关系

安装 Docker

Docker 支持 CentOS6 及以后的版本。

卸载

1.查询安装过的包

yum list installed | grep docker

docker-engine.x86_64                 17.03.0.ce-1.el7.centos         @dockerrepo

 2.删除安装的软件包

yum -y remove (上面查询到的文件 空格隔开)

 3.删除镜像/容器等

rm -rf /var/lib/docker

Docker最新版安装

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install docker-ce

配置镜像加速器

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://erkdxfh9.mirror.aliyuncs.com"]

}

EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

查看 docker 版本

docker version
docker info

启动 docker并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

Docker 基本操作

容器操作

docker [run|start|stop|restart|kill|rm|pause|unpause]

· run/create[镜像名]创建一个新的容器并运行一个命令

· start/stop/restart[容器名]:启动/停止/重启一个容器

· kill [容器名]: 直接杀掉容器,不给进程响应时间

· rm[容器名]:删除已经停止的容器

· pause/unpause[容器名]:暂停/恢复容器中的进程

docker [ps|inspect|exec|logs|export|import]

· ps:查看容器列表(默认查看正在运行的容器,-a 查看所有容器)

· inspect[容器名]:查看容器配置元数据

· exec -it [容器名] /bin/bash:进入容器环境中交互操作

· logs --since="2019-02-01" -f --tail=10 [容器名]:查看容器日志

· cp path1 [容器名]:path 容器与主机之间的数据拷贝· export -o test.tar [容器名] / docker export [容器名]>test.tar : 文件系统作为一个 tar 归档文件

· import test.tar [镜像名:版本号]:导入归档文件,成为一个镜像

镜像操作

docker images|rmi|tag|build|history|save|load]

· images:列出本地镜像列表

· rmi [镜像名:版本]:删除镜像

· tag [镜像名:版本] [仓库]/[镜像名:版本]标记本地镜像,将其归入某一仓库

· build -t [镜像名:版本] [path]Dockerfile 创建镜像

· history [镜像名:版本]: 查看指定镜像的创建历史

· save -o xxx.tar [镜像名:版本] / save [镜像名:版本]>xxx.tar : 将镜像保存成 tar 归档文件

· load --input xx.tar / docker load<xxx.tar : 从归档文件加载镜像

 

后台启动容器:

docker run -d --name nginx nginx

进入已运行的容器:

docker exec -it nginx /bin/bash

查看容器的元数据: docker inspect nginx

绑定容器端口到主机:

docker run -d -p 8080:80 --name nginx nginx:latest

挂载主机文件目录到容器内:

docker run -dit -v /root/peter_dir/:/pdir --name cent centos

复制主机文件到容器内:

docker cp anaconda-ks.cfg cent:/var

 

发布了6 篇原创文章 · 获赞 2 · 访问量 4589
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览