作为一个开发工作者,繁忙工作之余,自学了一些运维的东西,今天写的是关于docker的一些入门级别的东西,这里包含了本人所有在docker踩的坑,以此记录,后人警戒。
1.docker search XXX (搜索)
用docker在镜像仓库搜索自己想要的东西。
2.docker pull XXX(下载镜像)
用docker下载第一步搜索到的镜像,如果有多个版本应该用(docker pull XXXX:版本号)来下载自己想要的镜像,没有默认下载最新的版本latest,如果下载失败,那么你的镜像名称可能在镜像仓库不存在,建议先使用第一步操作,查看清楚自己需要的镜像全称。
3.docker images (查询自己本地的所有镜像)
docker查询自己在网上下载到本地的所有镜像。
4.docker run -d -p 3306:3306 --name dockersql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.70 (启动mysql5.70)
其中,-d 指的是后台运行,这个建议一定要写,否则你开启之后会无法继续操作docker,只能ctrl+c强制退出才能继续操作。
-p 指的是自定义映射端口到docker的mysql的3306端口,蓝色字体可以自己修改,需要注意的是这里的 -p 是小写的,大写的-P是指随机给mysql分配端口,--name是指给你的容器取一个别名,方便后续的操作,别名是不能重复的,如果之前你取来一个这样的容器别名并且run之后(不管成功与否),必须要删除这个容器才能继续取相同的别名,否则会报错,删除看第7条。 -e MYSQL_ROOT_PASSWORD是给你的root用户设置密码,mysql:5.70是你的镜像名称和版本号,如果是版本是最新的(latest),那么版本号可以不写。
5.docker ps(查询正在运行的容器)
查询正在启动的所有容器信息,需要。
6.docker stop (容器ID或者别名) (docker优雅的停止某一个容器)
使用docker停止某一个容器,别名是上面通过--name设置的属性,可以用来停止或者restart它,所以别名不能重复,之所以称stop是优雅的停止,它可以等容器工作保存完后再退出,使用kill直接停止,无视容器是否保存正在运行的工作。
7.docker rm和docker rmi(删除容器和镜像)
rm删除容器,rmi删除镜像,个人最开始对rm和rmi总是记不清,来科普下容器和镜像的区别。我们从远程仓库下载下来的都是镜像,当镜像运行的时候,就生成了一个容器,镜像是容器的模板,两个不会互相影响。可以理解为镜像是放在硬盘中,需要用的时候拿出来,变成容器放入内存中。停止之后,容器虽然消失了,但是缓存中还是存在的,可以直接唤醒,除非你直接把它删掉,删掉了之后下次在用就必须再次从硬盘中拉取镜像,就这么个意思。这里给出一个小技巧,rmi可以理解为rm images,而images就是镜像的命令,所以rm就理所应当是容器啦。当你在使用stop之后,使用docker ps显示是停止了,但是在容器里面有一个记录,类似sql文件一样,可以使用docker ps -a查询所有,包含停止的容器。如果容器已有的别名,那么你新建的容器别名就不能重复,除非你删掉已存在的同名的容器才可以,可以使用(docker rm 容器ID或者别名)删掉某一个容器。
8.docker log (容器ID或者别名)(查看某一个容器的日志)
docker查看某一个容器的日志
9.docker stop `docker ps` (停止所有运行的容器)
停止所有运行的docker容器,还有一种写法:docker stop $( docker ps ),需要注意的是这个符号`是tab上面的那个键。
10.docker rm `docker ps -a`
删除所有的容器,包括停止的容器,在此之前建议先使用第9步停掉所有运行的容器,还有一种写法: docker rm $(docker ps -a)。
11.docker rmi consul:latest (删除镜像id相同的两个中的其中一个)
如果你使用了标签tag,那么会有两个镜像ID一模一样的镜像,这时候如果要删除其中一个,可以使用镜像名称和版本的格式删除其中一个。
这是我入门时摸索docker所有爬过的坑,分享给你,如果对你有用,请点个赞再走,谢谢!