Docker教程2 - 容器的使用和Docker的登录( 二 )


那现在 , 我们停掉这个容器吧
docker stop 1fa4ab2cf395
2. 分享你创建的镜像
为了证明的可移植性 , 我们现在就上传刚才创建的镜像 , 并且让它可以在任何地方运行 。
归根究底 , 你的最终目的是要发布到生产环境的 。
这里有几点你必须要知道的知识 , 分别是:
a. 一个是一个多个(仓库)的集合
b. 一个是多个(镜像)的集合
c. 默认情况下 , 是的 , 如果想要的 , 请看 这里
2.1 登录
如果你还没有账号 , 请注册一个 , 
如果你已经注册完了 , 现在就开始登录
docker login
然后 , 我们给刚才创建的镜像(image)打一个tag , tag虽然是可选的 , 但是我们建议 , 你给镜像创建一个tag , 
因为大部分的时候 , 我们使用git开发项目 , 在某一个阶段都做了一个tag , 有意义的tag名称 , 便于标识该版本号 。
的镜像的tag也是一样的 , 它的格式是::tag , 创建tag使用命令tag
例如 , 命令如下
docker tag friendlyhello victor/first-repo:firsttag1
然后运行查看所有的镜像 , 也包括tag在里面
$ docker imagesREPOSITORYTAGIMAGE IDfriendlyhellolatest7554c6a24c1fvictor/first-repofirsttag17554c6a24c1fpython2.7-slim451c85955bc2......
除了使用也可以使用image ls
2.2 发布镜像
上传你打完tag的镜像(image)到库
docker push victor/first-repo:firsttag1
这个过程第一次有点慢 , 以后会好些 , 取决于你的网速 。
一旦上传完毕 , 你就可以登录Hub 如果你当前浏览器已经登录了账号 , 
它会自动跳转到你的仓库面板 , 反之 , 你需要登录 。
从现在开始 , 你就可以在任何机器上运行你的应用 , 通过 fun 命令 ,  如下:
docker run -p 4000:80 victor/first-repo:firsttag1
如果这个镜像不存在本机上 , 会自己pull这个库下来
请注意:
如果你没有在这些命令中指定 ``` :tag ``` 部分 , 在你生成和运行镜像时 , 最新的tag ``` :latest ``` 会被默认使用 。如果没有指定tag , Docker会使用最新的镜像版本
注意这里总结了一些本篇文章提到的命令 , 也有一些是额外增加的
docker build -t friendlyname .# 使用仓库的Dockerfile文件 , 创建一个镜像(image)docker run -p 4000:80 friendlyname# 运行 "friendlyname" 镜像 , 并且映射主机端口4000 到容器端口 80docker run -d -p 4000:80 friendlyname# 跟上一条一样 , 但是 , 此条命令是把friendlyname镜像运行在分离进程中docker ps# 查看正在运行的所有的容器的列表docker stop# 优雅的停止运行指定的容器 docker ps -a# 查看所有的容器列表 , 包括没有在运行的docker kill# 强行关闭指定的容器 docker rm# 从这台机器上移除指定的容器 docker rm $(docker ps -a -q)# 从这台机器上移除所有的容器 docker images -a# 显示这台机器上的所有镜像 docker rmi # 从本机移除指定的镜像docker rmi $(docker images -q)# 从本机移除所有的镜像 docker login# 使用Docker credentials 登录到CLI会话docker tag