docker 使用教程1-(Docker的常用操作)
本系列会做一个完整的Docker使用教程
上一篇:docker的安装、卸载、运行:https://www.cnblogs.com/easyidea/p/14210376.html
下一篇:docker安装MySQL 8:https://www.cnblogs.com/easyidea/p/14218131.html
1、Docker概述
docker实际上是一种规范,就像集装箱一样,不管要运算的东西是什么都要装在集装箱里面运输。这就是规范,这样的规范使得码头的装货卸货效率提升,也使得运输船舶、运输车辆的大小尺寸有了进一步的规范,从而使得在整个物流运输过程中的效率得到提升。
docker的镜像就是遵循这种规范的集装箱,这样就使得每个镜像不管里面是什么软件程序,无论在什么地方运行都是一样的结果,这样做的好处就是使得在运维部署的时候解决了环境不一致的问题。
docker采用容器化技术使得每个容器隔离开来,不会相互影响,因此使用docker可以运行多个 JDK、Nginx、mysql.....甚至还能运行操作系统,并且容器是直接运行在操作系统上面的所以大大节省了资源。
2、概念理解
镜像:docker镜像就像一个个模具。
容器:docker容器就是模具翻模出来的东西。
仓库:仓库就是存放模具的地方。
下面通过运行 hello-world 来理解 docker镜像运行过程的操作流程:
流程分析:
3、操作命令:
①:拉取镜像
(使用该命令会从远程仓库拉取镜像到本地,并且如果本地已有该镜像会覆盖)
docker pull hello-world
②:运行镜像
(使用该命令会创建新的容器,相当于每次执行会翻模一次,除了ID不同其他都相同)
(该命令如果本地没有该镜像的话执行该命令相当于:先后执行 pull+run 两个命令)
docker run hello-world
③:查看本地的镜像
docker images
执行上面的命令之后输出如下:
镜像名称 | 版本 | ID | 创建时间 | 大小 |
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
hello-world | latest | bf756fb1ae65 | 12 months ago | 13.3KB |
④:查看正在运行的容器
(如果容器没事可做会被docker关闭运行状态,因为hello-world打印输出之后就没事可做了,所以执行下面的命令看不到hello-world容器)
docker container ls
简化命令:docker ps
⑥:查看所有容器
(下面的命令可以查看所有容器包括正在运行的、已经结束的)
docker container ls -a
简化命令:docker ps -a
执行上面的命令输出如下:
容器 ID | 镜像名称 | 启动容器时运行的命令 | 容器的创建时间 | 容器的状态 | 容器的端口 | 容器名称 |
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
4d102af792af | hello-world | "/hello" | About an hour ago | Exited (0) About an hour ago | modest_robinson |
⑤:删除镜像
(删除镜像要输入镜像ID,可以只输入前一段能区分就行了)
docker image rm bf756
简化命令:docker rmi bf756
执行上面的命令,如果出现 :Error response from daemon: conflict: unable to delete bf756fb1ae65 (must be forced) - image is being used by stopped container 4d102af792af
说明这个镜像还在被容器依赖,这时要先删除它创建的容器(包括已经停止的容器)才能删除该镜像,也可以强制删除:
docker images rm -f bf756
⑦:删除容器
(删除容器和删除镜像差不多 ,输入容器ID前几位就行了)
docker container rm 4d102
简化命令:docker rm 4d102
如果出现:Error response from daemon: You cannot remove a running container a7...... Stop the container before attempting removal or force remove
说明该容器正在运行需要先停止运行才能删除,也可以强制删除:
dockers container rm -f 4d102
简化命令:docker rm -f 4d102
⑧:启动容器
(启动容器 ,输入容器ID前几位就行了。可以同时启动多个ID ,空格分隔开来)
docker container start 4d102
简化命令:docker start 4d102
⑨:停止容器
(停止容器 ,输入容器ID前几位就行了。可以同时启动多个ID ,空格分隔开来)
docker container stop af749
简化命令:docker stop af749
⑩:重启容器
(重启容器 ,输入容器ID前几位就行了。可以同时启动多个ID ,空格分隔开来)
docker container restart af7451
简化命令:docker restart af7451