命令帮助:
docker --help
docker run --help
docker ps --help
docker exec --help
...
镜像查询:
从镜像源查找:
docker search image_demo
会从镜像源中搜索包含image_demo关键字的镜像
其实不是特别需要docker search命令,直接docker run image_demo 如果本地没有image_demo镜像就会在镜像源服务器中寻找
从本地查找:
docker images
镜像执行(生成容器并执行):
docker run [--name, --env,...] image_demo
- --name 为容器指定一个名字。docker为自动为容器生成container id,但是不利于记忆,于是使用--name指定别名
- --env 有的镜像在部署的时候需要制定环境变量,比如:PASSWORD、USRNAME...
- -d --detach,后台执行
- -p --publish,制定从container到host的端口,--push 8080:80
- -- link 用于两个容器之间的通讯, --link db:mysql 将当前容器与名为db的容器建立连接,mysql是db的别名。link本质上是在两个容器之间虚拟出一条网络连接,如果没有link,两个docker无法ping到对方。
- -- network link马上会被弃用,建议使用--network docker run --network docker0 image_demo 其中docker0是docker自动创建的默认网关,可以自己通过:docker network create -d bridge my-net 创建自己的网关
容器查看:
docker ps [-a]
- 默认显示执行的container
- -a 显示所有container相关的信息
启动和停止容器:
docker start container_demo/container_id
docker stop container_demo/container_id
进入container内部执行命令:
未启动的容器:
docker run -it image_demo /bin/bash
- -i 保持从标准输入读取数据,互动
- -t 伪终端
已经启动的容器:
docker exec -it container_demo /bin/bash
查看容器状态
docker stats container_demo
显示CPU、内存、网络、磁盘IO等信息
容器删除
docker rm container_demo
- -f 强制删除正在运行的container
查看镜像分层:
docker history image_demo
创建数据卷:
docker run [-v, -volume_from] image_demo
- -v host_dir:docker_dir 用于共享host和docker之间的文件夹,这样可以讲docker中程序的之日同步到host
- -v host_file:docker_file用于共享host和docker之间的文件,这样有很多好处:
- 可以很方便的通过修改host的配置文件来修改整个集群的配置
- 共享/etc/localtime来使所有docker的时间和host一致
- -volume_from 用于docker和docker之间的数据共享
网络配置:
docker network create --subnet=192.168.0.0
/24
myNetwork 创建网络
docker network
ls 查看网络
docker run -it --net myNetwork --ip 192.168.0.100 demo 在启动容器时指定网络