docker run: 创建一个新的容器并运行一个命令 Docker run命令
如下: 运行friendlyhello镜像,并在后台运行,且将容器的80端口映射到宿主机的4000端口
docker run -d -p 4000:80 friendlyhello
-d: 后台运行容器,并返回容器ID
-p: 端口映射,格式为 宿主机端口:容器端口
-i: 已交互模式运行容器 -t:容器重新分配一个伪输入终端, 通常-i -t 一起使用
--name="mycontainer": 为容器指定一个名称
-m : 设置容器使用内存最大值
--env-file=[] : 从指定文件读入环境变量
docker run -it 8fd3ffabad2d
docker start/stop/restart: 启动/停止/重启容器,后面跟一个或多个容器ID. Docker start/stop/restart 命令
docker stop e892afb4e7fc
docker exec: 在运行的容器中执行命令。
docker exec -it 9df70f9a0714 /bin/bash
//-it 分配伪终端 9df70f9a0714为运行的容器ID
进入到容器环境中,可输入基本命令查看。exit退出容器。
docker kill:杀掉一个运行中的容器
docker kill -s KILL 94c6b3c3f04a
//杀死一个id是94c6b3c3f04a的容器,并向容器发送KILL信号
//-s 自定义发送容器的信号
docker rm: 删除一个或多个容器 docker rm
-f 强制删除一个运行中的容器
docker pause/unpause : 暂停/恢复 容器中所有的进程
docker create : 创建一个新的容器但不启动它,
和docker run的唯一区别是create创建不启动容器 ,run创建并启动
docker ps: 列出容器,默认只显示正在运行的容器
-a 显示所有的容器,包括为运行的
-n 5 列出最近创建的5个容器
dokcer inspect : 获取容器/镜像的元数据
docker inspect [OPTIONS] NAME|ID
NAME|ID,为容器或镜像的name或id
docker top: 查看容器中运行的进程信息
docker top CONTAINER
docker attach: 连接到正在运行中的容器
要attach的容器必须正在运行,可以通过attach命令连接上同一个container来共享屏幕。
注意如果container当前正在前台运行进程,Ctrl-C不仅会导致退出容器,而且容器还会stop。我们想要的detach是脱离容器终端,但容器依然运行,解决方法,加上 --sig-proxy=false,这样detach时不会关闭容器。
docker attach --sig-proxy=false containername/containerid
docker events:从服务器获取实时事件
-f: 根据条件过滤
-- since:从指定时间戳后显示所有事件
--until : 事件流水事件截止到指定时间
// 显示镜像为image_name的 从2019/4/13 23:56:40 后的相关事件
// 2019/4/13 23:56:40的unix时间戳为1555171000
docker events -f "image"="image_name" --since="1555171000"
docker wait : 阻塞运行直到容器停止
docker logs: 获取容器的日志
//查看容器4130d8f05240从2019-04-13后的最新10条日志
docker logs --since="2019-04-13" --tail 10 4130d8f05240
docker login: 登录到一个docker镜像仓库,默认dockerhub
docker logout: 登出一个docker镜像仓库,默认dokcerhub
docker login [OPTIONS] [SERVR]
options说明
-u: 登录的用户名
-p: 登录的密码,不建议用
docker pull : 从镜像仓库中拉去或者更新指定镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
docker push : 将本地镜像上传到镜像仓库,要先登录到镜像仓库
docker push [OPTIONS] NAME[:TAG]
docker push waldenz/friendlyhello:v1
// waldenz是本人的dockerhub id号, friendlyhello是要在传到dockerhub上名称为friendlyhello的repository,
// 如dockerhub上没有,则自动创建
docker search: 从镜像仓库中查找镜像
docker search [OPTIONS] TERM
-s: 列出收藏数不小于指定值的镜像(已弃用,--filter代替)
--filter=stars=3: 列出收藏数不小于3的镜像
docker images : 列出本地镜像
-a: 列出本地所有的镜像(包括中间映像层,默认情况下,过滤掉中间影响层)
docker rmi: 删除本地一个或多个镜像
docker rmi -f image-name:v1 强制删除本地镜像image-name:v1
docker tag: 标记本地镜像,将其归入某一仓库,相当于重命名本地image
docker tag ubuntu:15.10 runoob/ubuntu:v1 将镜像ubuntu15.10标记为 runoob/ubuntu:v1
docker save: 将指定镜像保存成tar归档文件, -o: 输出到的文件
docker save -o the-image-filename.tar imagename:v1 将指定镜像保存成tar归档文件
docker load: 从tar文件中load镜像到本地镜像库
docker load -i the-image-filename.tar (load后依然保留原始的镜像名称)
docker build: 使用Docerfile创建镜像
docker build -t docker_demo:v1. 使用当前目录的Dockerfile创建镜像,标签为v1
docker history: 查看指定镜像的创建历史
docker history imagename:tag
docker import: 从归档文件中创建镜像, 从the_file_v1.tar文件创建newimagename:v1这个镜像。
docker import the_file_v1.tar inewmagename:v1
和load的区别是,import可以为镜像重命名,load不可
docker export: 将一个容器导出为文件,再使用docker import 导入为新的镜像。
docker export -o aaaaa.tar a12345678 //将id为a12345678的容器保存为tar文件
注意: docker export 作用于容器,不是镜像,且save导出的内容是一个分层的文件系统,会比export单纯的linux文件目录大。
docker info: 显示docker系统信息,包括容器数和镜像数等
docker version: 显示docker版本信息