docker的用法总结

之前陆陆续续记录的笔记,整理一下,一方面回顾一下这些知识,另外一方面也方便以后查阅,如果能对新人有一点点帮助,那也是一件很好的事情。

本文同样发布在我的知乎专栏:https://zhuanlan.zhihu.com/p/258128461

一、docker基本命令

docker ps                 => 显示正在运行的容器(container), ps: print status 
docker info               => 显示docker环境信息(版本号, 容器个数等)
docker run hello-world    => 启动最基础的一个容器
docker images             => 列出本地的镜像
docker run –help          => 获取docker run的帮助信息
docker pull busybox       => 从远端拉取busybox镜像到本地
docker pull ubuntu:12.04  => 拉取镜像时可以指定版本号
docker kill container_id  => 关闭/杀死一个容器(容器id可以通过docker ps获取)
docker rm -f xxx          => 彻底删除一个容器
docker inspect xxx        => 查看container的具体信息

二、volumes 相关

docker volume ls           => 显示所有的volumes
docker volume prune        => 删除无用的volume以释放存储空间

三、关于docker composer

1. What is it?
docker composer是一个定义和管理多个容器(container)的工具

2. 常用workflow
a) create empty folder
b) edit docker-compose.yml (requirments.txt)
c) docker-compose up

3. 常用commands (dc: docker-compose)

dc up                  => 启动
dc down                => 关闭并清除container
dc build               => 重新build image
dc ps                  => print process
dc run web env         => 查看web所用的env变量 (web是一个container)
dc stop –volumes       => remove data volume

注意: 所有dc命令必须在工作目录下才能执行(有docker-compose.yml)

docker持久化数据在下面的目录
- /var/lib/docker/volumes
(docker-compose down -v 这个操作会删除对应的volume)

四、docker实例

1. 启动mysql(run的参数可以在docker hub里找到)

docker pull mysql:5.7
docker run -p 13306:3306 –name mysql-in-vps -v /root/data/mysql:/var/lib/mysql 
    -e MYSQL_ROOT_PASSWORD=xxx mysql:5.7

在主机上可以通过: mysql -P 13306 -u root -p -h 127.0.0.1 来访问它。

2. 启动cassandra(注意Cassandra的版本,找到适合自己工程的版本)

docker pull cassandra:2.1
docker run -p 19042:9042 -v /my/host/path/data:/var/lib/cassandra –name cassandra1 cassandra:2.1

启动好后,可以通过DevCenter来连接它。

五、Q&A

1. 当一个容器启动了,如何进入到container里面?
A: docker exec -it xxx bash (xxx 可以是容器的name,或者id)

2. 进入容器后,发现没有任何编辑器
A: apt-get update && apt-get install vim (必须先update一下才能安装软件包)

六、比较好的文章

Docker 入门教程 - 阮一峰的网络日志

docker 命令列表

原文地址:https://www.cnblogs.com/xianzhon/p/13715493.html