Docker 基本命令

systemctl start docker : 启动 Docker

systemctl stop docker : 停止 Docker

systemctl restart docker : 重启 Docker

systemctl enable docker : 开机启动 Docker

docker info : 查看 Docker 概要信息

docker --help :查看 Docker 帮助文档

docker version : 查看Docker版本信息

Docker 镜像 基本命令

1、docker images or docker image ls : 列出本机所有镜像

options 可选参数

可选参数 参数描述
-a 显示所有镜像(包括中间层)
-q 只显示镜像Id
-qa 可以组合使用
--digests 可以显示镜像的摘要信息
--no-trunc 可以显示完整的镜像信息

2、docker search : 搜索镜像

options 可选参数

可选参数 参数描述
--no-trunc 显示完整的镜像描述
-s 列出收藏数不小于指定值的镜像
--automated 只列出Docker Hub自动构建类型的镜像

docker pull : 拉取镜像

​ dockers pull 镜像名称 :

​ 注意:不加TAG,默认下载最新版本 latest

3、docker rmi : 删除镜像

  1. 删除单个

    docker rmi 镜像名称:[TAG]  如果不写 TAG 则默认删除最新版 latest
  2. 有镜像生成的容器在运行的时候,会删除失败,需要加 -f 强制删除

    [root@iZbp17khuqdfkef3nl1db3Z ~]# docker rmi rabbitmq
    Error response from daemon: conflict: unable to remove repository reference "rabbitmq" (must force) - container 99693943e972 is using its referenced image 84bc4895f175
    docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG] 多个镜像之间空格隔开
  3. 删除所有镜像

    docker rmi $(docker images -q) : 删除所有镜像

Docker 容器 基本命令

  1. docker run [OPTIONS] image [COMMAND][ARG...] : 创建并启动容器

    options 可选参数

    可选参数 参数描述
    --name='容器新名字' 为容器指定一个名称
    -i 以交互模式运行容器、通常和 -t 同时使用
    -t 为容器重新分配一个伪输入终端,通常和 -i 同时使用
    -d 后台运行容器,并返回容器id
    • docker run --name 别名 镜像id : 启动普通容器
    • docker run -it --name 别名 镜像Id 来运行一个容器,取别名,交互模式运行,以及分配一个伪终端 : 启动交互式容器
    • docker run -di --name 别名 镜像Id :以守护式方式创建并启动容器
  2. docker ps [OPTIONS] : 列出容器

    options 可选参数

    可选参数 参数描述
    -a 显示所有容器,包括未运行的
    -f 根据条件过滤显示的内容
    --format 指定返回值的模板文件
    -l 显示最近创建的容器
    -n 显示最近创建的 n 个容器
    --no-trunc 不截断输出
    -q 静默模式,只显示容器编号
    -s 显示总的文件大小
    -qa 列出所有容器id
  3. exit :容器停止退出

    ctrl + p + q : 容器不停止退出

    docker attach 容器Id or 容器名 : 进入容器

    dockr start 容器id or 容器名 : 启动容器

    dockr restart 容器id or 容器名 : 重启容器

    docker stop 容器id or 容器名 :停止容器

    docker kill 容器id or 容器名 : 暴力停止,直接杀死进程(不推荐)

    docker rm 容器id : 如果删除正在运行的容器,会报错,如果需要删除,需要强制删除

    docker rm 容器Id -f : 强制删除

    docker rm -f $(docker ps -qa) : 删除所有容器

    docker stop $(docker ps -aq) : 停止所有容器

    docker exec -it 容器id /bin/bash : 进入容器

    在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    E: Unable to locate package vim

    这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

    等更新完毕以后再敲命令:apt-get install vim命令即可。

Docker 容器与宿主机端口映射

docker run [OPTIONS] IMAGE [COMMAND] [ARG...] : docker run :创建一个新的容器并运行一个命令

docker run -i -t -p 宿主机端口:容器应用端口 --name 别名 镜像id : Docker 容器与宿主机端口映射

options 可选参数

可选参数 参数描述
-d 后台运行容器,并返回容器ID
-i 以交互模式运行容器,通常与 -t 同时使用
-P(大写p) 随机端口映射,容器内部端口随机映射到主机的高端口
-p(小写p) 指定端口映射,格式为:主机(宿主)端口:容器端口
--name 为容器指定一个名称

修改 Docker 默认存储位置,Docker 容器迁移

Docker中默认存放镜像和容器的目录是:/var/lib/docker/ ,/var下比较容易满建议迁移。

我的系统是 Centos7,具体解决步骤如下:

  1. 停止Docker 服务:

    systemctl stop docker; //每个liunx版本的命令不一样。
  2. 在空间充足的磁盘下创建新的docker目录

    mkdir -p /data/docker;	//在根目录下新建
  3. 迁移/var/lib/docker目录下面的文件到刚才新建好的 /data/docker下面

    cp -rvf /var/lib/docker/* /data/docker
  4. 修改 Docker 配置

    1. vim /etc/systemd/system/docker.service.d/devicemapper.conf

    2. 在文件末尾添加:--graph=/data/docker

      devicemapper.conf文件的内容如下:

      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd --insecure-registry=私服地址 --graph=/data/docker

      注意:如果/etc/systemd/system/docker.service.d/devicemapper.conf,这个路径找不到的话,就新建,新建之后加入内容,没有私服地址的话就可以去掉”--insecure-registry=私服地址”。

  5. 重载配置,重启docker

    systemctl daemon-reload;
    systemctl restart docker;
    systemctl enable docker;
  6. 启动成功后,确定容器没问题后删除/var/lib/docker/目录中的文件,然后就OK了。

查看容器日志

docker logs : 获取容器的日志

语法 :docker logs [OPTIONS] CONTAINER

options 可选参数

可选参数 参数描述
-f 跟踪日志输出
--since 显示某个开始时间的所有日志
-t 显示时间戳
--tail 仅列出最新N条容器日志

Docker 容器目录挂载

​ 我们 在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以实现宿主机和容器目录的双向数据自动同步。

​ 我们可以通过容器目录挂载,能够轻松实现代码上传、配置修改、日志同步等需求。

语法 : docker run -i -t -v /宿主机目录:/容器目录 镜像id

多目录挂载 :docker run -i -t -v /宿主机目录:/容器目录 -v/宿主机目录2:/容器目录2 镜像id

注意 :如果同步多级目录,可能会出现权限不足的提示,只需要添加 **--privileged=true **来解决挂载的目录没有权限的提示问题。

Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定。

譬如我要启动一个centos容器,宿主机的/data/hData目录挂载到容器的/cData目录,可通过以下方式指定:

docker run -i -t -v /data/hData:/cData 470671670cac

注意点

  1. 容器目录不可以为相对路径
  2. 宿主机目录如果不存在,则会自动生成

Docker 基本命令和使用的更多相关文章

  1. 15个Docker基本命令及用法

    Docker入门教程:15个Docker基本命令及用法   本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的. AD:51CTO 网+ 第十二期沙龙:大话数据 ...

  2. 七、docker基本命令

    Docker 基本命令 docker的基本命令 docker version :查看docker的版本号,包括客户端.服务端.依赖的Go等 [root@centos7 ~]# docker versi ...

  3. Docker基本命令

    1.搜索Docker镜像 docker search <镜像名> 2.获取镜像 docker pull <镜像名> 3.查看本地镜像 docker images 4.删除镜像 ...

  4. docker:(1)docker基本命令使用及发布镜像

    docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用 省去复杂的配置工作 比如java web项目部署,如果是新部署,需要装 ...

  5. 再谈docker基本命令

    子曰,温故而知新 今日,再次看书之际,又寻得docker的几条使用命令,用小本本记下来 配置docker镜像源 当我们在拉去一些共有镜像时,默认,docker会向docker.io去获取,如果在拉取的 ...

  6. docker基本命令使用

    学会使用docker命令帮助 docker help 子命令 查看docker镜像 docker images 搜索镜像 docker search 镜像名 下载镜像 docker pull 镜像名 ...

  7. Docker基本命令与使用 —— Docker容器的网络连接(四)

    一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...

  8. Docker基本命令汇总

    Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相 ...

  9. Docker基本命令与使用 —— Dockerfile指令与构建(三)

    一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...

随机推荐

  1. Python中numpy模块的简单使用

    # encoding:utf-8 import numpy as np data1 = np.array([1, 2, 3, 4, 5]) print(data1) data2 = np.array( ...

  2. cdn第三方前端依赖架包共享地址

    https://cdnjs.com/ 可在此网站查找你需要的稳定第三方前端依赖架包

  3. PYthon之路Day12

    生成器 核心:生成器的本质就是一个迭代器 程序员自己写的一种迭代器 作用:节省空间 生成器可以使用for进行遍历 生成器编写方式: 基于函数编写 def func():    print('这是一个函 ...

  4. 使用VSCode创建简单的Razor Webapp--1.入门

    1.下载vscode,安装dotnet core sdk 在cmd中使用命令dotnet --version可以查看当前安装的版本 2.打开vscode,设置语言和扩展 在最左边的工具栏,点击最下面的 ...

  5. 论文阅读笔记(二)【IJCAI2016】:Video-Based Person Re-Identification by Simultaneously Learning Intra-Video and Inter-Video Distance Metrics

    摘要 (1)方法: 面对不同行人视频之间和同一个行人视频内部的变化,提出视频间和视频内距离同时学习方法(SI2DL). (2)模型: 视频内(intra-vedio)距离矩阵:使得同一个视频更紧凑: ...

  6. 机器学习作业(二)逻辑回归——Matlab实现

    题目太长啦!文档下载[传送门] 第1题 简述:实现逻辑回归. 第1步:加载数据文件: data = load('ex2data1.txt'); X = data(:, [1, 2]); y = dat ...

  7. arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc)

    arm-linux-gnueabihf-gcc下载 qt下载 arm-linux下qt + opencv开发环境的搭建(Altera DE1 Soc) Ubuntu 16.04 安装QT arm嵌入式 ...

  8. Atom 基础使用

    当你安装好了 Atom 之后,让我们来认识一下它吧. 当你第一次打开 Atom 的时候,你会看到这样的一个窗口:   这是 Atom 的欢迎屏幕(welcome screen),它展示了一些不错的建议 ...

  9. Selenium(Webdriver)自动化测试常问问题

    http://blog.sina.com.cn/s/blog_c189e2590102w3bv.html Selenium(Webdriver)自动化测试常问问题 (1)selenium中如何保证操作 ...

  10. php设计模式之桥接模式实例代码

    <?php header("Content-type:text/html;charset=utf-8"); abstract class msg{ protected $se ...