docker是个应用容器引擎,一般主要是运维吧。因此最好的学习方式是在Linux系统中来学习使用,这样更接近真实的项目开发环境。这里根据我看的视频课,需要先更新一下yum环境。更新yum环境的命令:sudo yum update
具体的命令:yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
具体的命令:yum makecache fast
yum install docker-ce docker-ce-cli containerd.io
安装完成后,可以输入docker -v 来查看版本信息。当出现如图所示,就证明已经安装好了。

systemctl start docker
systemctl status docker
systemctl enable docker
docker images
systemctl stop docker
镜像: Docker镜像是由文件系统叠加而成(是一种文件的存储形式);是docker中的核心概念,可以认为镜像就是对某些运行环境或者软件打的包,用户可以从docker仓库中下载基础镜像到本地,比如开发人员可以从docker仓库中拉去(下载)一个只包含centos7系统的基础镜像,然后在这个镜像中安装jdk、mysql、Tomcat以及自己开发的应用,最后把这些环境打成一个新的镜像。开发人员将这些镜像提交给测试人员进行测试,测试人员只需要在测试环境下运行这个镜像就可以了,这样可以保证开发人员和测试人员的环境完全一致。
docker images
这里我以拉取centos7为例子,来写命令。注意,我这里没有指定版本号,它默认会拉取centos7的最新镜像,如果需求是某一个版本,那就需要指定版本号了。
docker pull centos:7
删除镜像的话有两个参数可选,可以根据镜像的id删除镜像,也可以根据镜像的名称删除镜像。
docker rmi name/id
容器,也是docker中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如同java语言中类和对象的关系。
Docker提供的关于容器的操作有:
查看正在运行的容器使用命令:docker ps
查看所有容器使用的命令:docker ps -a

可以基于已有的镜像来创建和启动容器,创建与启动容器使用命令:docker run
其中,可以携带一些参数,具体的参数说明如下:
docker run -it --name=mycentos7 centos:7 /bin/bash(这里后面的意思是进入到bin目录,然后用bash脚本来操作)
创建并启动守护式容器 : 创建并启动守护式容器后,容器可以在后台运行。
在创建交互式容器之后,如果退出容器的话,容器处于停止状态,可以使用命令再次启动容器,使用命令进入容器并操作。
对于一个需要长期操作的容器,我们可以创建一个一个守护式容器。值得注意的是,守护容器的名字避免重复。
# 创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
# 启动容器后再进入容器
docker exec -it mycentos2 /bin/bash
具体运行的截图

可以看到,已经创建成功了。
停止容器 :docker stop mycentos2(可以看到stop后面接的是容器的名字
这里放一下截图,可以看到,容器停止后,使用命令查看容器的状态,显示已经停止了

启动容器: docker start mycentos2
可以看到截图,显示已经成功启动。

# docker cp 需要拷贝的文件或者目录 容器名称:容器目录
# 创建一个文件adb.txt
touch abc.txt
可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建容器时添加-v参数,后边为宿主机目录容器目录,例如: docker run -di -v/usr/local/test:/usr/local/test–name=mycentos3 centos7
# 创建linux宿主机要挂载的目录
mkdir /usr/local/test
//创建并启动容器mycentos3,并挂载linux中的/usr/local/test目录到容器的/usr/local/test;也就是在linux中的/usr/local/test中操作相当于对容器相应的目录操作
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos2 centos:7
#在Linux下创建文件
touch /usr/local/test/def.txt
#进入容器
docker exec -it mycentos2 /bin/bash
#删除容器(注意:只能删除停止运行的容器,不能够删除正在运行的容器)
docker rm mycentos2