docker 简介

vtnews 2020-02-23

docker

docker 是一个软件,c/s架构的软件(mysql,redis)

但是,mysql客户端和服务端通信时,基于socket,自己定制的协议,pymysql就是个mysql的客户端(跟navicate,go语言的连接mysql的代码和java连接mysql的代码都是一个东西)

docker 客户端跟服务端通信,是通过http协议,resful规范(新的软件,基本上都是走http协议,resful规范),es

docker 的重点就是镜像和容器,基于镜像来运行容器:镜像是面向对象中的类,容器是面向对象中的对象

注册中心:docker 是一个软件,需要虚拟化出操作系统,操作系统从哪来?从注册中心拉下来的,从注册中心来下来的东西,叫镜像(比如要拉一个centos7的镜像),镜像运行起来,叫容器(才是真正的跑起来的操作系统)

一个centos7镜像,跑起来两个容器,在一个容器上装了mysql,在另一个上装了python3.6

说白了就是,docker就是一个模板,用来实例化出一个个操作系统的。你可以在宿主机上下载一个docker,然后拉取了镜像,把镜像给实例化了一个容器出来,这个容器,就是一个操作系统,是什么操作系统就看你拉取了什么镜像下来,现在就变成了一个操作系统上面还有一个操作系统了。当然你也可以在这个容器里在安装docker,在拉镜像,一堆没有意义的操作,禁止套娃。

docker 安装

windows(win10及以上,下一个docker软件,下一步安装就可以了)/linux(乌班图,centos)/Mac

乌班图上很简单,因为docker就是在乌班图上开发的

在centos上安装,要在7.x以上,在上面装docker

mac本质就是unix操作系统,在终端连接

ssh

安装步骤

sudo yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  
sudo yum install docker-ce
#docker软件安装完成,服务端和客户端都安装完成,
docker -v #查看客户端版本

2.3 启动docker

docker 安装完,服务端没有启动,需要启动

systemctl start docker # 7.x用这个命令启动
systemctl stop docker #停止docker服务端
  
  
# 了解
启动docker:

systemctl start docker
停止docker:

systemctl stop docker
重启docker:

systemctl restart docker
查看docker状态:

systemctl status docker
开机启动:

systemctl enable docker
查看docker概要信息

docker info
查看docker帮助文档

docker --help

2.4 镜像操作

查找镜像:docker search centos,会去https://hub.docker.com/查找

直接去该地址查找即可

镜像名称,是否是官方镜像,描述,stars数

拉去centos7的版本镜像

docker pull centos:centos7

docker pull centos:8

docker pull python:3.6 其实下载下什么东西?镜像,其实是一堆文件,

那centos7和python的区别是什么?如果下载python3.6 :就是一个操作系统上安装了python环境,从官方拉,是乌班图+python

docker pull mysql:5.6 ?下载了一个镜像,镜像里安装了mysql,就相当于操作系统上安装了mysql

查看服务端所有的镜像

docker images

删除镜像 (容器如果没有删除,镜像删除不了)

docker rmi id号 id号可以缩写

docker rmi 5e3

2.5 容器操作

镜像运行,是启动容器,一个个的容器,就是一个个的操作系统

一个centos7的镜像,可以跑起多个容器,每一个容器就是一个操作系统

查看容器

docker ps:查看正在运行的容器

docker ps –a:查看所有容器(包括停止和运行的)

创建启动容器

docker run -it --name=mycentos centos:centos7 /bin/bash

exit 退出容器,容器也就停止了

docker run -di --name=mycentos2 centos:centos7 不进入容器 内部

docker exec -it mycentos2 /bin/bash 进入到容器内容

exit退出,容器不停止

docker stop id号或者名字 容器停止

docker start id号或者名字 启动容器

相关推荐