1.介绍
在前面几个章节,我们讲解了服务器如何构建,docker如何安装、如何优化,也通过一条命令获得了一个容器,本章我们讲解下docker基础操作命令,让docker不止停留在概念上,而是在我们上手活起来,充当我们手中的利器。
2.通用命令
2.1 查看docker的各项信息
docker version #查看docker版本
docker info #查看docker信息
docker --help #查看docker的帮助
2.2 启动、通知docker服务
systemctl start docker #启动docker服务
systemctl stop docker #停止docker服务
3.镜像
镜像是容器的基础,只有先拥有了镜像,才能生成对应的容器,同时我们也可以将容器生成为我们需要的镜像。
首先,我们先要拥有一个镜像,通过上篇文章的命令,我们运行起来了一个容器,如果你跳过了此章节,没关系,请输出下面的命令,拥有一个ubuntu18.10版本的容器,并且获得一个镜像。
docker run -p 8080:80 --name ubuntu18_base ubuntu:18.10
3.1 基本操作
- 查看本机镜像
docker images
- 查看本机镜像 及 摘要信息
docker images --digests
- 只拉镜像到本地 通过命令我们就可以不通过创建容器的方式 来拉取镜像了
docker pull ubuntu:18.10
- 删除镜像 通过docker images 查询到镜像的id 通过Id进行删除
docker rmi ["imges Id"]
- 强制删除镜像 增机 -f 参数,镜像删除的时候会进行判断,如果当前预删除的镜像有正在运行的容器,则不允许删除,如果增加了-f参数,则忽略此条件,强制删除。
docker rmi -f ["imges Id"]
3.2 查看镜像
docker希望能够将应用都封装到镜像中,实现开箱即用。这一理念也得到了众多大厂的支持,所以很多公司都相继推出了自己的镜像,如mysql、redis等,接下来我们就讲一下如何在网站上检索对应的镜像文件,并实现下载。
注册DockerHub不单单可以检索、获得其他厂商的镜像,同时也可以将你的镜像推送到这上面来,定义为私有或者公有,方便大家和你自己进行下载。
step 1:访问DockerHub
访问DockerHub,网址为: https://hub.docker.com 网速很慢,需要你有点耐心,访问成功后,注册并登录成功。
step 2:在搜索栏 搜索 mysql
我们可以检索到很多版本的mysql镜像,我们点开第一个。
我们可以看到,官网给我们提供了推送镜像到本地的命令,粘贴到本地执行即可,执行成功就可获得相应镜像。
4.容器
4.1 启动容器
docker run [option] [镜像名称]
参数 | 解释 | 样例 |
---|---|---|
–name | 定义一个容器的名字 | ubuntu_base |
-d | 后台运行 | -d |
-it | 以交互模式运行容器 | -it |
-p | 指定容器外与容器内的映射端口 | 8080:80 |
重新再看这条命令 是不是就清晰了很多呢?
docker run -p 8080:80 --name ubuntu18_base ubuntu:18.10
4.2 查看容器
#查看 启动中的容器
docker ps
#查看 所有容器 (启动中的+历史运行过的)
docker ps -a
#查看容器信息
docker inspect <容器名称 or 容器Id>
#查看容器内的进程
docker top <容器名称 or 容器Id>
4.3 启动与停止容器
#重启容器
docker restart <容器名称 or 容器Id>
#停止容器
docker stop <容器id/容器名> #停止容器
docker kill <容器id/容器名> #强制停止容器
docker rm <容器id/容器名> #删除容器
#载入一个正启动的容器 后续会经常用到 这里是重点 这里是重点 这里是重点
docker attach <容器名称 or 容器Id>
exit #容器停止并退出容器
ctrl+p+q #组合键 容器不停止并退出
4.4 查看容器日志
docker logs -f -t --tail <容器id>
4.5 生成镜像
step 1:通过命令实现镜像生成
通过执行以下三条命令,我们实现了将容器生成为镜像的过程。
#下载容器到本地
docker run -p 8080:80 --name ubuntu18_base ubuntu:18.10
#提交容器为镜像
docker commit -a 'zhangbo' -m 'add jdk 1.8 add vim add nginx' ubuntu18_base mdjzbsq/docker_ubuntu_base:1.0
#查看镜像生成情况
docker images
step 2:命令讲解
docker commit [option] [容器名称] [REPOSITORY[:TAG]]
- option
参数 | 解释 | 样例 |
---|---|---|
-a | 提交镜像的作者 | zhangbo |
-m | 镜像添加了什么内容 | add jdk 1.8 add vim add nginx |
- [容器名称]
是你需要提交的为镜像的容器名称。 - [REPOSITORY[:TAG]]
是你需要上传的镜像名称,格式为 [仓库名称]/[镜像名称]:[版本号]
4.6 推送镜像
接下来我们将已经生成的镜像推送到DockerHub上,方便我们以后进行下载。
step 1:在DockerHub上创建相应的仓库
step 2:推送镜像到仓库
#输入命令后 会要去输入 username、password,输入DockerHub上申请的帐号密码即可。返回login Succeeded则表示登录成功
docker login
#推送已经生成的镜像文件
docker push mdjzbsq/docker_ubuntu_base:1.0
step 3:到DockerHub验证推送结果
如图,这个就是我们推动到DockerHub官网上的镜像。
为了验证效果,我们可以下载此镜像到本地(为了验证效果,请手工删除本地已经存在的容器和镜像)。
执行如下命令,指定下载的镜像是我们推送到外网的镜像和版本。
docker run -p 8080:80 --name my_ubuntu18 mdjzbsq/docker_ubuntu_base:1.0
小结
本章节我们介绍了如何操作镜像、如何操作容器、如何将容器转换为镜像并推送到官网。接下来,我们会从实战出发,通过我们今天学习的相关知识,打造一个专属的前端应用容器,为后续章节可持续化部署做准备。