Docker精简学习系列(一):安装、常用命令和基本概念理解
作者:互联网
本系列为Docker的学习笔记,内容比较精简,主要用于快速复习和随时查询。计划分四节内容:
- 安装、常用命令和基本概念理解
- 常用应用和两个.NET项目的容器部署
- 简单学习Dockerfile
- 简单了解Docker compose
一、安装Docker
- 更新yum包:yum update
- 安装yum配套的工具包:yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker:yum install -y docker-ce
- 查看docker版本,验证是否安装成功:docker -v
- 配置镜像加速器:登陆阿里云>进入窗口镜像服务>镜像工具>镜像加速器>(CentOS)>复制到shell中执行
二、Docker服务相关命令
1、启动/停止/重启/后台运行/查看服务状态
systemctl 【start | stop | restart | enable | status】 docker
三、镜像相关命令
1、查看本地所有镜像/搜索远程镜像/拉取镜像/删除镜像
docker 【images | search (redies) | pull (redies:7) | rmi (redis:7 | e42dd4e79c7) | 】
2、查看所有镜像ID
docker images -q
3、删除所有镜像
docker rmi `docker images -q`
四、容器相关命令
1、创建容器
docker run 【-it | -id】 --name=c1 centos:7 /bin/bash
-it:创建容器(交互式),立即进入容器,并开启一个终端,exit退出容器后,容器立即关闭
-id:创建容器(守互式),并一直在后台运行,进入容器并exit退出后,容器不会关闭
--name:容器命名
/bin/bash:进入容器的初始化指令,打开shell脚本窗口
2、查看正在运行的容器:
docker ps
3、查看正在运行和已经退出的容器:
docker ps -a
4、进入容器
docker exec -it c2 /bin/bash
-it:进入容器,并开启一个终端
c2:容器名称
/bin/bash:进入容器的初始化指令,打开shell脚本窗口
5、退出容器
exit
6、启动容器/关闭容器/删除容器/查看容器信息。注:start容器后,容器自动转为守护式
docker 【start | stop | rm | inspect】 c1
7、查看所有容器ID
docker ps -aq
8、删除所有容器
docker rm `docker ps -aq`
五、数据卷相关命令
1、创建容器时配置数据卷
docker run -id --name=c1 -v /root/data_linux:/root/data_container centos:7 /bin/bash
-v:设置数据卷,如果要挂载到多个数据卷,可以多次-v;如果要挂载多个容器数据目录,则每个容器创建时挂载相同的数据卷即可
/root/data_linux:/root/data_container:冒号前为数据卷目录的绝对路径,冒号后为容器数据目录的绝对路径
容器删除后:容器数据丢失,但数据卷仍然在。重新创建容器时,重新挂载到数据卷目录,即可恢复容器数据
2、配置数据卷容器:
①创建数据卷容器(/volume可以自己定义):
docker run -id --name=c3 -v /volume centos:7 /bin/bash
②创建c1和c2容器,并挂载到c3上(--volumes-from为设置属性命令)
docker run -id --name=c1 --volumes-from=c3 centos:7 /bin/bash
docker run -id --name=c2 --volumes-from=c3 centos:7 /bin/bash
完成以上两个步骤,inspect查看c3、c1和c2,找到以下信息
"Source": "/var/lib/docker/volumes/de83e5ea073ca277882694995f88137b2933e1f695362590103760f166923b04/_data",
"Destination": "/volume",
如上,Source目录即为在宿主机上自动创建的数据卷,Destination即为容器数据目录
六、基本概念的理解
- 镜像:程序安装包,类似于windows安装会经常接触到的iso文件。
- 远程镜像:官方hub服务器上的镜像,hub类似于javascript的npm、NET的nuget。远程镜像要先拉取到本地计算机,因hub在国外,速度比较慢,所以一般要设置国内的镜像加速。镜像加速器,就是国内服务商对hub服务器的克隆。当然,也可以创建自己的私有镜像服务器。
- 本地镜像:远程镜像要拉取到本地计算机,才可以创建容器。本地镜像,类似于类,容器就是用这个类创建的实例。所以同一个版本的镜像,只有一个;而相应的容器可以有很多个。
- 容器:使用本地镜像创建容器后,程序在容器环境中运行。容器即“容器”这个词汇本身的含义,又有运行在容器中的程序的含义。容器中运行的程序,不限于应用程序,也可以是操作系统,比如我们在CentOS上安装docker,而在docker的容器里,我们可以再运行一个CentOS。同一个镜像,可以创建多个容器,即在一个docker里我们可以运行多个相同的程序,比如运行多个redis,容器之间是沙箱隔离的。
- 宿主机:docker运行所在的Linux服务器
- 数据卷:解决容器中产生的数据的持久化保存、容器之间数据交互、容器与外部之间数据交互问题。将容器中的数据目录挂载到宿主机的文件目录,并使这两个目录数据保持同步,宿主机中的这个文件目录称之为数据卷。容器删除后,容器数据丢失,但数据卷的数据仍然保留。一个数据卷可以被多个容器挂载,一个容器也可以挂载到多个数据卷,多对多关系
- 数据卷容器:多容器数据交互,可以通过挂载到同一个数据卷上来实现。也可以在容器和数据卷之间,再创建一个数据卷容器。容器挂载到数据卷容器,数据卷容器再挂载到数据卷,从而实现数据交互。即“容器>数据卷容器>数据卷”
- docker核心意义:①应用程序和依赖环境一起部署在容器中,可以发布到任何Linux服务器上,解决“水土不服”的问题;②使用文件层(镜像)叠加,重用文件层(镜像),区别于虚拟机,可以有效利用资源,而且效率非常高。
七、最后上图理解
标签:容器,--,挂载,常用命令,精简,镜像,Docker,数据,docker 来源: https://www.cnblogs.com/functionMC/p/16558885.html