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

 

posted @ 2020-12-30 21:57  一文搞懂  阅读(807)  评论(0编辑  收藏  举报