主要命令:
docker pull NAME[:TAG]
使用images查看已有镜像
docker images
使用tag命令添加镜像标签
docker tag [已有镜像] [新镜像名]
整体来说,docker tag命令添加的标签实际上起到了类似链接的作用.
使用inspect查看详细信息
docker inspect [镜像名]
docker inspect -f {{“.Architecture”}}
使用history查看历史镜像
docker history [镜像名]
docker search [名称]
支持的命令:
docker rmi [镜像名]
docker commit [OPTIONS] ConTAINER [REPOSITORY[:TAG]]
OPTIONS内容:
- -a,–author=“”,表示作者信息
- -c,–change=[],表示提交时候执行的DockerFile指令
- -m,–message=“”,表示消息
- -p,–pause=true,表示提交时暂停容器运行
本地模板导入
cat [本地模板] | docker import - [自己定义的镜像名]
存出镜像
载入镜像
docker push NAME[:TAG] | [REGISTERY_HOST[:REGISTRY_HOST]/]NAME[:TAG]
首先再Docker Hub先创建一个仓库:
然后为你需要提交的镜像打一个标签,注意!!这里标签需要对应你所建立的仓库名
- create
docker create -it ubuntu:latest // 创建,但是并不会运行
docker ps -a // 查看目前存在的容器
- 启动容器
- 新建并且创建容器
除了创建容器后通过start命令来启动,也可以执行新建并且创建,所需命令主要为 等价于,先再
docker run ubuntu /bin/echo ‘hello world’
重点:所执行的操作:
- 检查本地是否存在指定的镜像,不存在就从公有镜像中下载
- 利用镜像创建一个容器,并且启动
- 分配一个文件系统给容器,并在只读的镜像层外面挂在一个可读写层
- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中
- 从网桥的地址池配置一个IP地址给容器
- 执行用户特定的程序应用
- 执行完毕后容器被自动终止。
- 125:Docker daemon 执行错误,例如制定了不支持的Docker命令参数
- 126:所指定命令无法执行,例如权限错误
- 127:容器内命令无法找到
- 守护态运行
在Docker中可以使用docker stop来终止一个运行中的容器。
docker stop [id]
docker restart // 重新启动
2.3.1 attach命令
docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] 容器名
描述选项
使用attach命令有时候并不方便,多个窗口同事attach连接到同一个容器的时候,所有窗口都会显示同步,所以当阻塞时,便无法使用了
2.3.2 exec命令
docker exec [OPTIONS] 容器名
这里我们主要说几个重要的OPTIONS
docker rm [OPTIONS] 容器名|容器ID
这里我们主要说几个重要的OPTIONS
2.5.1. 导出容器
docker export [-o | --output[=“”]] 容器名 // -o表示导出的tar文件名
2.5.2 导入容器
**和load的区别:**load来导入到本地镜像库,import导入一个到本地镜像库,容器快照文件会丢弃所有的历史记录和元数据信息,而镜像存储文件将保存完整记录,体积因此更大。
仓库是集中存放镜像的地方,分
操作步骤:
- 创建并登录Docker Hub,以及目标网站:*在目标网站中连接帐户到Docker Hub
- 在Docker Hub中配置一个“自动创建”
- 选取一个目标网站中的项目(需包含Dockerfile)和分支
- 指定Dockerfile位置,并提交创建
可以通过官方提供的: 来搭建
默认仓库创建在容器的目录下,可以通过来修改。
容器管理数据的两种主要方式:
- 数据卷:
- 数据卷容器:
4.1.1 在容器内创建
docker run -d -P --name web -v /webapp training/webapp python app.py
-v标记可以。上述代码表示使用镜像创建一个web容器,并创建一个数据卷挂载到容器的目录
表示容器服务暴露的端口,自动映射到本地的临时端口。
4.1.2 挂载一个主机目录作为数据卷
docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
表示加载主机的/src/webapp目录到容器的/opt/webapp目录
docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py
默认的数据卷是读写模式,可以增加表示为只读
4.1.3 挂在一个本地主机文件作为数据卷
docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
docker run -it -v /dbdata --name dbdata ubuntu // 创建一个dabata数据卷容器 并且创建一个数据卷挂载到/dbdata
ls // 查看/dbdata
可以使用-v在其他容器中来挂载dbdata容器中的数据卷
docker run -it -v dbdata --name db1 ubuntu
docker run -it -v dbdata --name db2 ubuntu
这样三个容器在任何一方在该目录下的写入,其他容器都可以看到。
可以多次使用 --volumes-from|-v 参数来从多个容器挂载多个数据卷,还可以从其他已经挂载了容器卷的容器来挂载数据卷。
最后:注意!如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用命令来指定删除关联的容器