docker部署和使用(一)

1、什么是Docker?

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。 

Docker通常用于如下场景:

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

2、docker部署(yum安装)

前提条件

目前,CentOS 仅发行版本中的内核支持 Docker。

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

使用 yum 安装(CentOS 7下)

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

[root@zabbix ~]# uname -r 
3.10.0-327.el7.x86_64

安装 Docker

Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

[root@zabbix ~]# yum -y install docker

启动 Docker 后台服务

[root@zabbix ~]# systemctl start docker

搜索镜像:

docker  search    镜像名

从docker仓库下载centos 镜像:

docker pull centos

查看镜像仓库:

[root@zabbix ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos    latest              2d194b392dd1        9 days ago          195 MB

 导出镜像:

docker save centos > /opt/centos.tar.gz

导入镜像:

docker load < /opt/centos.tar.gz

删除镜像:(如果镜像创建了容器则不能删除

 docker rmi 2d194b392dd1

3、创建并启动容器:

 命令语法:docker run   镜像的名称    命令
[root@zabbix ~]# docker run centos  /bin/echo 'hehe'
hehe
docker run --help #查看帮助

 查询当前所有的容器列表:(不加-a  只显示正在运行的容器)

[root@zabbix ~]# docker ps -a 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
5d0bdad0b684        centos              "/bin/echo hehe"    3 minutes ago       Exited (0) 3 minutes ago                       epic_mcnulty

定义一个名称为mydocker的容器

[root@zabbix ~]# docker run --name mydocker -t -i  centos /bin/bash
--name 定义名称
-t 创建一个伪终端
-i 让这个容器的标准输入保持打开的状态

 重新启动容器

[root@zabbix ~]# docker start 10281e93c067
10281e93c067

  [root@zabbix ~]# docker ps
   CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
   10281e93c067 centos "/bin/bash" 9 minutes ago Up 31 seconds mydocker

进入容器

[root@zabbix ~]# docker attach 10281e93c067
[root@10281e93c067 /]# 
[root@zabbix ~]# nsenter  #r如果没有这个命令安装下面的包   (可以访问另一个名称空间)
[root@zabbix ~]# yum install util-linux

 [root@zabbix ~]# docker inspect --format "{{.State.Pid}}" 10281e93c067  #获取docker容器的PID

 44459

 通过pid进入容器:

[root@zabbix ~]# nsenter -t 44459 -u -i -n -p 
[root@10281e93c067 ~]# 

进入容器脚本:(执行是传入 容器id)

#!/bin/bash

PID=$(docker inspect --format "{{.State.Pid}}" $1)

nsenter -t $PID -u -i -n -p


#进入容器(新)
docker exec -it 90c9a8e70994 bash

删除容器

[root@zabbix ~]# docker rm 5d0bdad0b684

 [root@zabbix ~]# docker run --rm centos /bin/echo 'hehe'  #加参数 --rm  执行完就删除容器
 hehe

 docker kill $(docker ps -a -q)  删除所以容器

 查看容器的详细信息

docker   inspect  容器ID 
例如:docker inspect 7c7785e1fd2b

原文地址:https://www.cnblogs.com/xu743876685/p/8576590.html