Docker容器技术---Docker的安装和常用命令---docker的数据卷

81 阅读4分钟

为什么使用docker

我们写的代码会接触到好几个环境: 开发环境,测试环境以及生产环境:

image.png

部署:

image.png

环境不同会造成水土不服:运行有问题

image.png

如何解决:只需要将所需要的环境一起打包部署即可

image.png

Docker的概念

Docker是基于Go语言实现的云开源项目。

Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

image.png

Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

Docker的应用

image.png

安装Docker

Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,该文章基于CentOS7安装Docker。官网: www.docker.com

1、yum包更新到最新

yum update

2、安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

3、设置yum源

yum-config-manager --add-repo download.docker.com/linux/cento…

4、安装docker ,出现输入的界面都按y

yum install -y docker-ce

5、查看docker版本,验证是否验证成功

docker -v

Docker的架构

image.png

  • Docker 镜像(Image)就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。

  • 容器(Container) :Docker 利用容器(Container)独立运行的一个或一组应用。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台

  • 仓库(Repository)是集中存放镜像文件的场所。

    类似于

    Maven仓库,存放各种jar包的地方;

    github仓库,存放各种git项目的地方;

    Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。

    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

    最大的公开仓库是 Docker Hub(hub.docker.com/),

    存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等

配置Docker镜像加速器

默认情况下,将来从docker hub (hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器:

USTC:中科大镜像加速器(docker.mirrors.ustc.edu.cn),仅限校内使用

阿里云

网易云

腾讯云

配置的是阿里云镜像加速器

image.png

image.png

Docker常用命令

Docker服务相关的命令

image.png

启动docker服务 systemctl start docker

停止docker服务 systemctl stop docker 重启docker服务 systemctl restart docker

查看docker服务状态 systemctl status docker

开机启动dockeh服务 systemctl enable docker

查看docker命令帮助文档: docker 具体命令 --help

Docker镜像相关的命令

image.png

查看镜像 docker images

image.png

搜索镜像 docker search redis

Docker Hub Container Image Library | App Containerization

image.png

拉取镜像 docker pull redis:6.0 冒号后跟的是版本号,如果不跟默认latest

查询所有镜像的id docker images -q

删除镜像

根据id删除 docker rmi id

根据名称:版本号删除 docker rmi redis:6.0

删除所有镜像 docker rmi $(docker images -q)

删除未使用的镜像 docker image prune -a

Docker容器相关的命令

image.png

1.创建容器

image.png

2.查看容器

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

docker ps -a --查看所有容器

3.创建一个容器但不进入容器

image.png

4.进入指定容器内

image.png

这时再使用exit退出容器,则不会关闭容器

5.启动容器

image.png

6.停止容器

image.png

7.删除容器

docker rm 容器id #只删除未启动的容器

docker ps -aq #查看所有容器的id

docker rm $(docker ps -aq) #删除所有容器

8.查看容器信息

image.png

9.输出当前容器日志信息

docker logs 容器id

容器的数据卷

1.数据卷的概念和作用

dockers容器删除后,容器中的产生的数据还在吗?

image.png

思考: Docker容器和外部机器可以直接交换文件吗?

image.png

思考: 容器之间想要进行数据交互》

image.png

数据卷的概念

数据卷是宿主机中的一个目录或问文件,当容器目录和数据卷目录绑定后,对方的修改会立即同步,一个数据卷可以被多个容器同时挂载,一个容器也可以挂载多个数据卷。

作用:

1.解决数据持久化问题

2.解决外部机器和容器的间接通讯问题

3.解决容器之间的数据交换

image.png

配置数据卷

image.png

docker run -id --name=c2 -v /usr/app:/usr/ykq -v /usr/app2:/usr/ykq2 centos:7 /bin/bash