你得折腾起来啊!

常用命令

# 显示docker的版本信息
docker version 

# 显示docker的系统信息,包括镜像和容器的数量
docker info

# 万能命令
docker 命令 --help

镜像命令

docker images 查看所有本地的主机上的镜像

image.png

1.解释

RESPOSITORY镜像的仓库源
TAG镜像的标签
IMAGE ID镜像的id
CREATED创建时间
SIZE大小

2.可选项

-a, --all   # 列出所有镜像
docker images -a 
-q, --quiet # 只显示镜像的id
docker images -q

docker images -aq #列出所有镜像的id

docker search 搜索镜像

ps: 建议去docker hub 搜索,可以显示详细信息及示例

1.可选项

 -f, --filter # 按条件过滤结果

docker search nginx --filter=TARTS=3000

docker pull 镜像名[:tag] # 下载镜像
不写tag 默认拉去latest版本
docker pull nginx:1.0

docker rmi 删除镜像

docker rmi -f 镜像id  #删除指定容器
docker rmi -f 镜像id 镜像id 镜像id ... # 删除多个容器
docker rmi -f $(docker iamges -aq) # 删除全部的容器

docker build 创建镜像

用于使用 Dockerfile 创建镜像

--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配置。
--squash :将 Dockerfile 中所有的操作压缩为一层。
--tag, -t# 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network #默认 default。在构建期间设置RUN指令的网络模式

docker tag : 标记本地镜像,将其归入某一仓库。

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

# eg: 将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。

docker tag ubuntu:15.10 runoob/ubuntu:v3

镜像仓库

docker login -u登陆的用户名 -p :登陆的密码    # 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout    登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库     

docker history 查看指定镜像的创建历史

-H  # 以可读的格式打印镜像大小和日期,默认为true;
--no-trunc # 显示完整的提交记录;
-q :# 提交记录ID。

容器命令

docker pull 下载一个镜像

docker pull name[:tag]

新建容器并启动

docker run [可选参数] image

# 参数说明
--name="name"  # 容器名字 nginx1 nginx2 用来区分容器
-d             # 后台方式运行
-it            # 使用交互方式运行,进入容器查看内容
--restart=always # 表示容器自启,一直运行
--volume , -v  # 绑定一个卷 避免修改文件后重新启动容器
-p             # 指定容器的端口 -p 8080:8080
     -p ip:主机端口:容器端口
     -p 主机端口:容器端口
-P             随机指定端口
-h "mars"     #  指定容器的hostname;
-e username="ritchie" # 设置环境变量;

# 启动并进入容器
docker run -it nginx /bin/bash
# 退出容器
exit # 直接退出,容器停止并推出
CTRL + P + Q # 容器不停止退出

docker ps # 列出所有运行中的容器

# 参数
    # 出当前正在运行的容器
-a # 列出当前正在运行的容器 + 带出运行过的容器

-n=? #显示最精创建的容器
-q  # 只出当前正在运行的容器

docker rm #删除容器

docker rm 容器id # 删除指定的容器(不能删除正在运行的容器,如果要删除 加 -f)
docker rm  -f $(docker ps -aq) # 删除所有容器
docker ps -a -a|xargs docker rm # 删除所有容器

启动和停止容器的操作

docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前的容器
docker pause 容器id # 暂停容器中所有的进程。
docker pause 容器id # 暂停容器中所有的进程。
docker unpause 容器id # 恢复容器中所有的进程。

常用的其他命令

1.后台启动

# 命令 docker run -d 镜像名
docker run  -d nginx
# 问题docker ps, 发现 容器停止了
# 常见坑:docker 容器使用后台运行,就必须要有哦一个前台进程,docker发现没有应用,就会自动停止

2.查看日志

docker logs 容器id

# 参数
-f # 持续打印
-t, #
--tail number #要显示的条数

3.查看容器中近程信息

docker top 容器id # 查看容器中运行的进程信息,支持 ps 命令参数。
容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。

4.查看镜像的元数据

docker inspect name|id

-f :指定返回值的模板文件。
-s :显示总的文件大小。
--type :为指定类型返回JSON。

5.进入当前正在运行的容器

通常容器都是使用后台的方式运行的,需要进入容器,修改一些配置

 # 进入容器后开启一个新的终端,可以在里面操作
 docker exec -it 容器id /bin/bash
 # 进入正在执行的终端,不会启动新的进程
 docker attach 容器id 

6.从容器内拷贝文件到主机上

 1.进入容器
 docker attach 容器id
 2.拷贝
 docker cp 容器id:容器内路径 目的地路径

总结

// 查看正在运行的容器
docker ps
// 查看所有的容器,包括停止运行的容器
docker ps -a
// 下载一个镜像
docker pull name[:tag]
// 

code_shuai
818 声望32 粉丝

love money = love code