初体验
安装一个 nginx 并运行
执行命令
1 | docker run -d -p 8080:80 nginx |
查看当前运行的进程
1 | docker ps |
访问http://localhost:8080
执行原理
- 检测本地是否有 nginx 镜像
- 如果没有,则去仓库下载最新的镜像
- 下载成功后,运行镜像
- 把本地的8080端口映射到容器的80端口
运行ubuntu容器,并进入bash
控制台
1 | docker run -it ubuntu /bin/bash |
- -t:分配一个伪终端并绑定到容器标准输入输出上
- -i:让容器的标准输入保持打开,可以一直监听输入
基本概念
镜像
相当于操作系统安装文件,提供容器所需要的程序,依赖库,资源,配置等信息
镜像可以嵌套镜像,一个镜像可以由多个镜像组成
容器
相当于一个独立的操作系统,拥有特定的运行环境,镜像与容器类似于类和实例的关系,容器的本质是进程
仓库
集中管理和分发给用户下载的镜像的服务
基础实战
镜像
搜索镜像
1
docker search nginx
下载镜像,(如果本地不存在)
1
docker pull fuhai/jpress:v2.0.7
查看镜像
1
docker images
删除镜像
1
docker rmi fuhai/jpress:v2.0.7
运行镜像
1
docker run
查看命令
1
docker run --help
实例
1
docker run -d -p 8080:80 nginx
-p:端口映射
-d:后台运行,并返回ContainerId,不加的话是直接运行停止容器
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 停止容器
docker stop <container_id>
# 启动容器
docker start <container_id>
# 暂停容器
docker pause <container_id>
# 继续已经暂停的容器
docker unpause <container_id>
# 重启容器
docker restart <container_id>容器操作
1
2
3
4
5
6
7
8# 列出容器
docker ps
# 查看容器详细信息
docker inspect <container_id>
# 删除容器
docker rm <container_id>进入容器
1
docker exec -it <container_id> bash
拷贝文件
1
2
3
4
5# 从本地拷贝到容器
docker cp /srcdir/srcfile <container_id>:/usr/local/webapp/...
# 从容器拷贝到本地
docker cp <container_id>:/usr/local/webapp/... /local/testdir/...把容器做成镜像
1
docker commit <conainer_id> mynginx:v1.0