Docker容器入门基础

Docker简介

Docker作为一个开源的应用容器引擎,让开发者可以打包他们的应用及依赖环境到一个可移植的容器中,然后发布到任何运行有Docker引擎的机器上。它集版本控制、克隆继承、环境隔离等特性于一身,提出一整套软件构建、部署和维护的解决方案,可以非常方便地帮助开发人员,让大家可以随心所欲地使用软件而又不会深陷到环境配置中。

Docker使用容器引擎解决平台依赖问题,它在每台宿主机上都启动一个Docker的守护进程,守护进程屏蔽了与具体平台相关的信息,对上层应用提供统一的接口。这样,Docker化的应用,就可以在多个平台下运行,Docker会针对不同的平台,解析给不同平台下的执行驱动、存储驱动和网络驱动去执行。

Docker是一个开源的容器引擎,也有自己的生态圈,它的应用以镜像(image)的形式发布,可以运行在任何装有Docker引擎的操作系统上。它有一个官方的镜像仓库,提供各种各样的应用,当需要某个应用时,就从官方的仓库搜索并下载,个人开发者也可以提交镜像到官方仓库,分享给别人使用。Docker也允许使用第三方的镜像仓库。

解决哪些问题
1:Docker化的应用使用容器虚拟化技术,每个应用都运行在独立的虚拟化环境中,天然具有隔离性,不用担心一机多用造成的管理混乱。
2:开发人员在多任务开发时,可以并行启动这些应用的Docker容器,每一个Docker应用有一个独立的运行环境,互不干扰。
3:开发机硬件故障,在新开发机上,重新从Docker仓库下拉开发环境的镜像,一两分钟内就可以重新搭建一套开发环境,并且即便新旧开发机的硬件和操作系统不一致,重新搭建的开发环境仍能保持和原来的环境一模一样。另外,还可以通过Docker仓库,把重要变更及时备份到远端。
4:Docker的每个复杂软件都可以制作成Docker镜像,分享给大家使用。随着Docker的流行,几乎所有主流的软件都提供Docker化的部署方式。软件部署将成为再简单不过的事情。

简单概括 Docker应用场景:
●应用程序打包和发 布
●应用程序隔离
●持续集成
●部署微服务
●快速搭建测试环境
●提供PaaS产品(平台即服务)

Docker 工作流程
在这里插入图片描述
首先,Docker官方给用户提供一个官方的Docker仓库,它就像iPhone手机的App应用商店,里面存放着各种各样已经打包好的Docker应用——Docker镜像。

其次,用户就可以搜索自己需要的镜像,下载到本地。Docker镜像是为了满足特殊用途而按照Docker的规则制作的应用,有点儿类似于Windows里面的安装软件包。

最后,用户就可以利用Docker镜像创建Docker容器,容器会启动预先定义好的进程与用户交互,对外提供服务。容器都是基于镜像而创建的,基于一个镜像可以创建若干个名字不同但功能相同的容器。

Docker的基本概念

Docker组成:
●Docker Client: 客户端
●Docker Daemon:守护进程
●Docker Images:镜像
●Docker Container: 容器
●Docker Registry:镜像仓库
其中三大基础组件:
1:仓库(Repository)
2:镜像(Image)
3:容器(Container)

Docker内部的组织结构
在这里插入图片描述
在一台主机上,首先要启动一个守护进程(Docker Daemon),所有的容器都被守护进程控制,同时守护进程监听并接收Docker客户端(Docker Client)指令,并把执行结果返回给Docker客户端。

Docker位于操作系统和虚拟容器(lxc或libcontainer)之上。它会通过调用cgropu、namesapces和libcontainer等系统层面的接口来完成资源分配与相互隔离。
在这里插入图片描述

常用操作指令

截止到Docker的V1.10.1版本,Docker一共支持51条指令,操作对象主要针对四个方面:
❑针对守护进程的系统资源设置和全局信息的获取。
比如:docker info、docker deamon等。
❑针对Docker仓库的查询、下载操作。
比如:docker search、docker pull。
❑针对Docker镜像的查询、创建、删除操作。
比如:docker images、docker build。
❑针对Docker容器的查询、创建、开启、停止操作。
比如:docker ps、docker run。

Docker指令除了单条使用外,还支持赋值、解析变量、嵌套等使用。

1:首先需要部署docker引擎
基本环境配置
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改为 SELINUX=disabled

开启路由转发
# vim /etc/sysctl.conf
末行插入:
net.ipv4.ip_forward=1

# sysctl -p  生效

安装依赖包
# yum install -y yum-utils device-mapper-persistent-data lvm2

设置阿里云镜像源
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

下载docker引擎
# yum install docker-ce -y
启动docker
# systemctl start docker
# systemctl enable docker

现在需要从公有仓库里拉取镜像,由于防火墙及网络问题,必须使用镜像加速,才能快速拉取镜像,可访问网站https://help.aliyun.com/document_detail/60750.html
需要自己去注册登录,并 生成固定的加速地址,

# cd /etc/docker
# tee /etc/docker/daemon.json <<-'EOF'
 {
"registry-mirrors": ["https://elxx129h.mirror.aliyuncs.com"]
  }
EOF


# systemctl daemon-reload      重新加载
# service network restart
# systemctl restart docker
docker引擎环境部署完成
2:镜像常用操作

(1)查看docker版本

# docker version

(2)搜索镜像

#docker search 名称

#docker search nginx 搜索公有仓库中nginx的所有镜像

(3)查看已下载镜像

# docker images

(4)获取镜像详细信息

# docker inspect 镜像ID

(5)获取新标签名

# docker tag nginx:latest  nginx:web

(6)删除镜像

# docker rmi nginx:web
如果有别名,删除其中一个,只是删除名称。如果只有一个,就是删除镜像本身

(7)把镜像以文件形式生成文件

# docker save -o nginx nginx:latest 

(8)镜像导入

# docker load < nginx

总结:
docker version 查看版本
docker search 搜索镜像
docker pull 下载镜像
docker images 查看已下载镜像
docker inspect 获取镜像信息
docker tag 添加镜像标签
docker rmi 删除镜像
docker save -o 文件名 镜像名 镜像以文件形式生成文件
docker login 登录
docker push 上传

3:容器常用操作

(1)查看容器状态

# docker ps -a

(2)创建容器

# docker create -it nginx:latest /bin/bash

(3)启动容器

# docker start 镜像ID

正常运行容器 需要以下3步:
下载镜像:docker pull 镜像
创建容器:docker create -it 镜像 /bin/bash
启动容器:docker start 容器ID

也可以一步到位(3步合1):

# docker run centos:7 /usr/bin/bash -c ls /

(4)终止容器

# docker stop 容器ID	

(5)进入容器
2种方法:
1)下面的命令是创建并开启容器后,进入的容器

# docker run -it nginx:latest /bin/bash

2)当容器状态是Up,进入容器
在容器内连续执行多条命令,可以加上“-it”参数,就相当于以root身份登入容器内,可以连续执行命令

# docker exec -it 容器ID  /bin/bash

(6)容器导出

# docker export 容器ID > nginx_c

(7)容器导入
会生成镜像,而不会创建容器

cat nginx_c | docker import - nginx:web

总结:
docker ps -a 查看容器状态
docker create -it 镜像 /bin/bash 创建容器
-i:让容器的标准输入保持打开
-t: 让Docker分配一个伪终端

docker start 镜像ID 启动容器
docker stop 容器ID 终止容器
docker rm 容器ID 删除容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值