docker attach
主要作用就是进入容器,可以查看容器内部的持续输出,但是一个docker容器只能产生一个attach,产生个attach也只是一样的内容
docker attach container_name/container_id
docker exec
比attach功能更加强大,可以像使用登录ssh服务一样登录docker容器。一个docker容器,可以生成多个个exec
docker exec -it container_name\container_id bash\hash\...
docker exec参数
1. -d 分离模式,在后台运行的命令
2. -i交互模式
3. -t 分配一个tty
4. -u指定用户和用户组,格式<name|uid>[:<group|gid>]
5. --privileged 分配一个特权给tty界面,相当于拥有了宿主机的root权限
一般使用-tid
docker build 构建镜像
使用dockerfile生成镜像
参数
1. -c 控制cpu的使用
2. -f 选择Dockerfile的名称
3. -m 设置构建内存的上线
4. -q不显示构建过程中的信息
5. -t 为构建的镜像打上标签
参数
--build-arg=[] :设置镜像创建时的变量;
--cpu-shares :设置 cpu 使用权重;
--cpu-period :限制 CPU CFS周期;
--cpu-quota :限制 CPU CFS配额;
--cpuset-cpus :指定使用的CPU id;
--cpuset-mems :指定使用的内存 id;
--disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
--force-rm :设置镜像过程中删除中间容器;
--isolation :使用容器隔离技术;
--label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
--no-cache :创建镜像的过程不使用缓存;
--pull :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit :Ulimit配置。
--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network: 默认 default。在构建期间设置RUN指令的网络模式
举个例子
docker build -t runoob/ubuntu:v1 .
docker commit
容器生成镜像
docker commit -a "wangshibo" -m "this is test" 651a8541a47d myubuntu:v1
-a 添加作者信息方便维护
-c 修改dockerfile的指令
-m 提交修改信息,类似git commit -m
-p 暂停正在进行的commit的操作
docker creaate
创建容器,但是并不执行容器,created状态的容器不占用cpu与内存
docker diff
可以列出容器内发生比那花的文件和目录
ddocker diff containerID
比如:
$docker diff ubuntu
C /home
A /home/c_text
有以下几个状态
A add
D delete
C change
docker evente
实时输出Docker服务器端的事件,包括 容器的创建、启动、关闭等操作
更精确的事件信息:
- 过滤容器
docker events -f container = <name or id>
- 过滤镜像
docker events -f image = <tag or id>
- 过滤volume
常见的事件create
,mount
,unmount
,destory
docker events -f volume = <name or id>
- 过滤网络
常见的事件create
,connect
,disconnect
,destory
docker events -f network = <name or id>
导入导出
docker export 导出镜像
docker export
用于导出本地存储的容器,就是直接将容器导出成tar文件
两种用法,
1. docker export -o containerName.tar containerName
2. docker export containerName > containerName.tar
docker import 导出容器
将export导出的tar文件,直接导入回去
1. docker import http://xx/xx.tar 导入网络中的tar文件
2. docker import containerName.tar 导出本地的tar包
docker images
查看本地存储的Docker镜像
docker images
参数:
1. -a 查看所有的镜像
2. -f 过滤
可选的参数:
1. docker images -f dangling=[true|false]
2. docker images -f label=<key>[=value]
3. docker images -f before=(imageName)[:tag] | <imageID> | <image@digest>)
4. docker images -f since=(imageName)[:tag] | <imageID> | <image@digest>)
3. -q 只显示id
docker ps
查看本地存在哪些容器
参数:
1. -a 显示全部容器,包括各种状态
2. -f 添加过滤条件,和docker images一样
3. -n 显示最近传教的容器
4. -q 只显示容器ID
5. -s 只显示容器大小
docker inspect
查看各项纤细信息的命令
重点是使用go语言中的模板语言
TODO
docker kill 杀死容器
docker kill containerName\containerID
dockerhub
docker login
登录到dockerhub的registry的命令
输入docker login
然后按照提示输出即可
docker logout
docker logs 查看日志
docker network
docker network参数
命令 | 说明 |
---|---|
network connect | 连接一个容器到指定网络 |
network create | 创建一个网络 |
network disconnect | 指定网络断开一个容器 |
network ls | 显示全部Docker网络 |
network rm | 删除指定网络 |
docker node
TODO
docker server
TODO
与docker node密不可分
docker swam
TODO
docker pause 暂停容器
docker pause containerName
docker unpause 恢复进程
docker port
与docker ps 类似,但是输出的是容器暴露的端口
docker pull
拉取镜像
docker rename
docker rename <old_containerName> <new_containerName>
docker restart
重启容器
docker <containerName1> <containerName2> <containerName3> 重启多个容器
参数:
-t ,可以在重启是设定容器等待的事件
docker rm
删除容器
docker rm -f containerName 强制删除
docker rm -v containerName 将容器与对应的数据卷一起删除
docker rm -l containerName 将与containerName之间的关联
docker rmi
docker rmi -f containerName 强制删除
docker run
docker save
将镜像导出成tar文件
docker save -o imageName.tar imageName:version
docker save imageName:version >imageName.tar
docker search
参数:
1. -f is-automated=<true|false>
2. -f is-offical=<true|false>
3. -f stars=<number>
一条语句中可以使用多条-f来进行限定条件
docker start命令
启动一个或者都哦个容器
参数:
-a 显示STDOUT/STDERR信息
-i 显示STDIN信息
docker stats命令
参数:
-a 展示全部容器
docker stats --no-stram <containerName> 监控容器使用资源的情况
docker stop
docker stop -t <containerName> 强制停止
docker tag
为容器打赏新的标签
docker tag Image:v1 IMage:newV1
docker top
类似linux下的top,使用docker top <containerName\containerID>
docker volumn
管理数据卷
参数
1. create
2. inspect
3. ls
4. rm