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. npm vs yarn

    npm yarn npm install yarn npm install react --save yarn add react npm uninstall react --save yarn re ...

  2. IDEA please configure web facet first

  3. 获取mybaties插入记录自动增长的主键值

    首先在Mybatis Mapper文件中insert语句中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是保存主键值的属性. 例如: <in ...

  4. android获取系统信息

    连接手机,adb shell 进入 Android Shell 模式,输入 getprop 获取系统属性值 通过上面方法拿到属性名,然后通过下面方法获取到系统的属性值 /** * 获取build.pr ...

  5. Jmeter-几种脚本录制方式

    一.使用代理服务器进行录制 1.创建线程组 2.创建http代理服务器 分组解释 不对样本分组:所有请求全部罗列 在组件添加分隔:加入一个虚拟的以分割线命名的动作 每个组放入一个新的控制器:执行时按控 ...

  6. git的分支

    git branch : git branch  -r  #查看远程分支 git branch -a  #查看本地分支和远程分支 git branch  -v  #查看本地库的所有分支 git  br ...

  7. Centos7 安装VNC实现远程桌面

    1.设置root用户方法: 1.# 复制一个服务设置的模板,命令如下: cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vn ...

  8. python3 yield实现假的多并发

    import time def fun1(): while True: print("fun1") time.sleep(0.1) yield def fun2(): while ...

  9. python3练习100题——025

    原题链接:http://www.runoob.com/python/python-exercise-example25.html 题目:求1+2!+3!+...+20!的和. 我的代码: s =[] ...

  10. Git push 报错error: failed to push some refs to 'git@github.com'

    出错原因 当我们在github版本库中发现一个问题后,你在github上对它进行了在线的修改:或者你直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同步.这个时 ...