经过前面几篇入门docker操作,希望你大致已掌握docker的使用,剩下的提高方法主要是多将自己开发的应用部署到docker上,进一步提高熟练掌握docker,docker是当下半自动化运维和自动化运维的主要技能之一,也是效能平台如K8s等的使用基础。
一、docker-compose(
https://github.com/docker/compose
)
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用和容器依赖,然后使用一条命令来启动你的应用,完成一切准备工作。 Docker Compose是用python写的,安装时,需要使用python 的pip管理安装。我们都知道maven 之于java,Docker Compose其实就是docker的maven工具,你将自己的制作的镜像上传到docker hub等公有云或者私有云上后,就能在客户端通过compose来操作部署你的镜像到自己服务器上。
Docker Compose默认的配置文件是docker-compose.yml,下面我们以携程开源分布式配置项目Apollo(
https://github.com/ctripcorp/apollo)的docker-compose来讲解:
如上图所示,apollo项目的docker-compose部署脚本就是这么简洁,services下定义了该部署共需要3个镜像,depends_on指明了它们之间的部署顺序关系,links指明了 apollo-quick-start 镜像需要apollo-db服务,ports是服务器端口到容器端口的映射. 在上诉文件夹下执行
docker-compose up -d
命令(
docker-compose 默认文件是docker-compose.yml,可以在执行命令时用 -f 指定其它名字,-d选项是让命令在后台运行),第一次执行时,会将依赖的镜像文件安装到docker中,下载安装完后,部署的应用就在8080端口和8070端口上运行了。
此时用
docker-compose ps 可以查看docker中的在运行应用,比较详细的docker-compose命令有如下这些:
build
构建或重建服务
help
命令帮助
kill
杀掉容器
logs
显示容器的输出内容
port
打印绑定的开放端口
ps
显示容器
pull
拉取服务镜像
restart
重启服务
rm
删除停止的容器
run
运行一个一次性命令
scale
设置服务的容器数目
start
开启服务
stop
停止服务
up
创建并启动容器
更多的docker-compose命令,可以在自己不断实践中熟练掌握
二、docker常用命令
docker run
在一个新的容器执行一个命令
docker start 开一个或者更多已经停止的容器
docker stop
停止一个运行的容器
docker restart 重新开始一个运行的容器
docker kill 杀死一个运行的容器
docker rm 删除一个或更多的容器
docker pause
暂停一个容器的所有进程
docker unpaunse
恢复一个容器的所有进程
docker
容器操作运维
docker ps
列出容器
docker inspect 列出关于容器或镜像的底层信息
docker top 显示一个容器运行的进程
docker attach
附上一个运行的容器
docker events 得到实时的来自服务的事件
docker log 获得一个容器的日志
docker wait
阻塞直到一个容器停止,然后打印它的退出代码
docker export 导出一个容器的文件系统作为一个tar文件
docker port
列出容器映射的端口
docker
版本管理
docker commit
创建一个新的镜像从一个容器
docker cp 从容器复制一个文件或目录到本地目录或标准输出
docker diff 展示一个容器文件系统的变化
docker 镜像仓库
docker login
登入仓库
docker pull
拉取镜像
docker push 推送镜像
docker search
搜索镜像
docker 本地镜像管理
docker images 列出本地的镜像
docker rmi
删除本地的镜像
docker tag 打标签本地的镜像
docker build
通过Dockerfile构建本地的镜像
docker histroy
列出镜像的历史
docker save 保存本地的镜像为一个tar文件
docker import
通过tar导入镜像
docker load 加载tar镜像
docker 其它命令
docker info
docker version
上面是docker使用的常用基本命令,平时用时供备查,到此docker的基础入门章节已告段落,后续我我会陆续写docker的高级使用场景。
参考:
1.
http://dockone.io/article/834
2.
http://wiki.jikexueyuan.com/project/docker-technology-and-combat/commands.html
3.
https://www.jianshu.com/p/711bc4ffcecf