一、入门案例
拉取centos镜像
docker pull centos
输出Hello World
docker run centos /bin/echo "Hello world"
各参数解析:
- docker:Docker的二进制执行文件
- run:与前面的docker组合来运行一个容器
- centos:指定要运行的镜像,如果本地不存在,Docker就会从镜像仓库Docker Hub下载公共镜像
- /bin/echo “Hello world”:在启动的容器中执行命令
运行交互式的容器
可以通过-i,-t参数实现与Docker容器交互
docker run -i -t centos /bin/bash
各个参数含义
- -t:在新容器内指定一个伪终端
- -i:允许你对容器内的标准输入 (STDIN) 进行交互
以进程的方式运行容器(后台运行)
docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
输出的不是hello world,而是一长串字符:3f546bc6e4fbb4cd33f5c92f0c5108f3bbc218e31e1942bbfa1766be8a61b347,这串字符是容器id,可以通过以下命令来查看:
docker ps
在容器内使用logs命令,查看标准输出:
docker logs 3f546bc6e4fb
使用docker stop停止容器运行:
docker stop id
二、Docker容器使用
Docker客户端
输入docker可以看到所有命令选项
通过docker command --help详细了解用法,如了解logs命令
docker logs --help
运行一个web应用
-- 载入镜像
docker pull training/webapp
docker run -d -P training/webapp python app.py
参数说明:
- -d:让容器在后台运行
- -P:将容器内部使用的网络端口映射到主机上
查看web容器的端口和访问地址
docker ps
PORTS:32678,ip:192.168.178.128;在浏览器中输入:192.168.178.128:32678
单独查看网络端口:
docker port 镜像ID
查看web应用程序日志
docker logs -f 镜像名称或ID
查看web应用程序容器的进程
docker top 镜像名称或ID
检查web应用程序
使用docker inspect来查看docker的底层信息,返回json形式的docker配置文件
docker inspect 镜像名称或ID
停止web容器
docker stop 镜像名称或ID
启动容器
docker start 镜像名称或ID
重启容器
docker restart 镜像名称或ID
移除容器
docker rm 镜像名称或ID
列举容器内的镜像
- REPOSITORY:镜像仓库源
- TAG:镜像标签
同一仓库可以有多个TAG,表示不同的版本,如ubuntu仓库源里,有15.10,14.04多个版本,我们使用REPOSITORY:TAG;如果不加TAG,默认使用latest
- IMAGE ID:镜像ID
- CREATED:镜像创建时间
- SIZE:镜像大小
获取新镜像
docker pull ubuntu:13.10
查找镜像
docker search centos
创建镜像
当我们从docker镜像仓库中下载的镜像不能满足需求的时候,我们可以通过以下两种方式对镜像进行改变
- 从已经创建的容器中更新镜像,并且提交这个镜像
- 使用Dockerfile来创建一个新的镜像
更新镜像
构建镜像
三、Docker常见命令
1. docker run
用来启动容器
- -i:开启交互界面,以交互的方式启动容器
- -t:
- -d:在后台运行容器
- -a: