关于docker,我们需要知道什么
介绍
概念
- 容器技术:操作系统级别的虚拟化技术,引用程序所需要的所有必要组件都打包为单个镜像。
- docker: 是一种应用容器引擎,可以隔离不同应用,可快速搭建平台环境和集群环境。
docker架构
-
服务端:docker守护进程
-
客户端:通过命令或RestAPI向服务端发送指令
docker客户端与守护进程通信
-
镜像:容器运行时的只读模板,每个镜像由一系列的层layers组成
-
仓库:用来保存镜像,公有的仓库名字是DockerHub,地址https://hub.docker.com/
其他类似的镜像托管平台
网易云镜像服务: https://c.163yun.com/hub
阿里云镜像服务:https://cr.console.aliyun.com/
- 容器:镜像中的应用程序运行成进程就是容器,类似于文件夹,各自独立。
为什么要用docker?
- 组件兼容问题:将应用到的函数库、依赖、配置和应用一起打包,每个应用放到一个隔离的容器中,互不干扰。
- 操作系统不同问题:将应用程序和需要调用的操作系统函数库一起打包,借助操作系统的linux内核来运行。
命名空间namespaces
资源配额cgroups
docker常用操作
docker -v # 查看docker版本
docker info # 显示docker的系统信息,包括镜像和容器的数量
docker pull mysql:5.7 # 拉取镜像
docker -images # 查看本地镜像
docker save -o mysql.rar mysql:5.7 # 打包镜像,如果别人网不好,可以打包丢给他
docker save mysql:5.7 > mysql.rar # 打包镜像,如果别人网不好,可以打包丢给他
docker load -i mysql.rar # 加载镜像
docker load < mysql.rar # 加载镜像
docker rmi mysql:5.7 # 删除镜像
docker run --name my_redhat --privileged=true -p 2222:22 -v D:/Docker_Redhat:/home/volume centos:v1 #创建容器
docker exec -it my_redhat /bin/bash # 连接到容易,像ssh一样进入容器,exit退出容器,但不影响容器的运行
docker stop my_redhat # 停止容器
docker start my_redhat # 启动容器
docker pause my_redhat # 让一个运行的容器暂停
docker unpause my_redhat # 让一个容易从暂停状态恢复运行
docker ps -a # 查看所有容器,不加-a,就是查看所有运行的容器
docker rename my_redhat myredhat # 修改容器名称
docker rm my_redhat # 删除容器
docker logs my_redhat #查看容器日志