前言:
前面两篇文章已经介绍了docker的概述和在腾讯云的centos 7上安装docker以及配置阿里云镜像加速,接下来对docker的常用命令进行总结归纳。
一、与docker启动停用有关的命令
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
开机启动:
systemctl enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker --help
二、镜像常用命令(接下来可以和我一起操作)
1、搜索镜像 docker search 镜像名
例如,我们搜索cnetos镜像,如下图
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度,数量越大越受欢迎
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
2、拉取镜像 docker pull 镜像名称
例如我们下载centos7 的镜像
docker pull centos:7
我们可以直接写docker pull centos,这样下的是最新的镜像,默认的版本就是latest
3、查看镜像 docker images
输入docker images ,如下图我们看到了我们刚才拉取的镜像centos 7
REPOSITORY:镜像名称
TAG:镜像标签,也就是版本
IMAGE ID:镜像ID
CREATED:镜像的创建日期(不是获取该镜像的日期)所以这里是10天前
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
4、删除镜像
按镜像ID删除镜像
docker rmi 镜像ID
删除所有镜像(类似sql语句,先用命令 docker images -q 查出所有的id,然后在删除)
docker rmi `docker images -q`
三、容器相关命令
1、查看容器命令
查看正在运行的容器
docker ps
查看所有容器
docker ps –a
查看最后一次运行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
-f :根据条件过滤显示的内容。
2、 创建与启动容器(之后会有一个实例,专门下面的命令进行操作)
创建容器常用的参数说明:
创建容器命令:docker run
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
(1)交互式方式创建容器
docker run -it --name=容器名称 镜像名称:标签 /bin/bash
例子:
docker run -it --name mycentos7 centos:7 /bin/bash
后面的/bin/bash的作用是表示载入容器后运行bash
退出当前容器
exit 退出当前容器,并且当前容器也退出了。
ctrl + p + q 退出当前容器,但是当前容器还在运行
再次进入容器,命令
docker attach mycentos7
(2)守护式方式(后台)创建容器:
docker run -d --name=容器名称 镜像名称:标签
实例:
docker run -d --mycentos2 centos:7
登录守护式容器方式:
docker exec -it 容器名称 (或者容器ID) /bin/bash
例子:
docker exec -it 1a68c3e9cce8 /bin/bash
这里有一点需要注意,如果我们用attach 重新进入到容器的时候,会发现什么都输入不了,我不知道其他人的可以吗,反正我这是不可以。
这里做一个简单的归纳,-it 方式创建容器,表示的是和容器进行交互,进入到容器内部,-d方式创建容器,不进入容器内部,容器在后台运行。这里顺便说一下docker机制
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
这点我们可以通过以-d方式创建一个centos 7的容器,docker -ps 后发现并没有这个进程,这个是docker的机制问题。
如果我们想要让程序后台运行我们可以以-di的方式进行守护式启动
docker run -di --name=容器名称 镜像名称:标签
3、 停止与启动容器
停止容器:
docker stop 容器名称(或者容器ID)
启动容器:
docker start 容器名称(或者容器ID)
删除所有容器
docker rm `docker ps -a -q`
4、文件拷贝(解决文件备份问题)
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
例子:我们先在我们的宿主机上建立一个文件,命名为contos.txt,如下图
然后将这个文件拷贝到我们我们mycentos5容器内的tmp下
docker cp centos.txt mycentos5:/tmp
此时我们看下容器内的内容,成功的从宿主机拷贝到了容器内
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
5、查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据
docker inspect 容器名称(容器ID)
也可以直接执行下面的命令直接输出IP地址
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ 容器名称(容器ID)
7、 删除容器
删除指定的容器:
docker rm 容器名称(容器ID)
删除所有不运行的容器:
sudo docker rm $(sudo docker ps -qf status=exited)
后记
以上这些命令是我的一些总结,有一些个人的理解,如果不对,欢迎指正,下一篇将以docker下安装tomcat为例子,将以上的部分命令进行实战练习