大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。
记录平时用的比较多的Docker命令。
docker学习地址
1、docker停止并删除运行的容器
- 首先查看运行的容器
docker ps
- 然后停止容器
注意这里的ID是运行的容器的ID,而不是镜像的ID。
docker stop 运行容器的id或者名字
- 删除停止的容器
这个命令不能用于删除镜像。
docker stop 运行容器的id或者名字
2、通过Dockerfile生成镜像
先要进入项目目录。
#进入目录
d: && cd d:\docker\helloworld
#编译镜像(默认为latest)(注意结尾一定要加.)
docker build -t helloworld .
#编译指定版本镜像(注意结尾一定要加.)
docker build -t helloworld:1.0 .
3、推送镜像到仓库
- 基于已有本地Docker镜像创建符合Docker规范的Repository: {username}/{repository} \
tag后面第一个参数是本地镜像的名称,第二个参数是远程仓库的名字。
下面这两个命令都运行,会生成tag是latest和版本号的两个镜像,但是名字一样,一会推送的时候就同时推送上去了。
# 最新版本镜像
docker tag test xjintong/test
# 编辑镜像的版本号
docker tag test:1.0 xjintong/test:1.0
可以看到它们的镜像ID都是一样的,就是引用的第一个生成的镜像。
- 推送
推送的时候先推送有版本号的,然后再推送没有的。这样就会保证最底层的镜像是latest,同时下面还有一个有版本号的。
这样下次push的时候会覆盖latest,然后旧版本号会保留。
docker push xjintong/test:版本号
docker push xjintong/test # 不加版本号,默认latest、
4、查看容器运行日志
docker logs 容器ID
5、将容器打包成镜像
下面的a404c6c174a2
是容器的ID,mymysql:v1
是要生成的本地镜像名。
docker commit -a "作者信息" -m "提交信息" a404c6c174a2 mymysql:v1
弄完之后就按正常的给镜像加tag,然后push就行了。
6、停止一个容器
docker stop 容器ID
7、删除一个停止的容器
docker rm 容器id