Docker 基本命令和使用
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
: 删除镜像
删除单个
docker rmi 镜像名称:[TAG] 如果不写 TAG 则默认删除最新版 latest
有镜像生成的容器在运行的时候,会删除失败,需要加 -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] 多个镜像之间空格隔开
删除所有镜像
docker rmi $(docker images -q)
: 删除所有镜像
Docker 容器 基本命令
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
:以守护式方式创建并启动容器
docker ps [OPTIONS]
: 列出容器 options 可选参数
可选参数 参数描述 -a 显示所有容器,包括未运行的 -f 根据条件过滤显示的内容 --format 指定返回值的模板文件 -l 显示最近创建的容器 -n 显示最近创建的 n 个容器 --no-trunc 不截断输出 -q 静默模式,只显示容器编号 -s 显示总的文件大小 -qa 列出所有容器id 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,具体解决步骤如下:
停止Docker 服务:
systemctl stop docker; //每个liunx版本的命令不一样。
在空间充足的磁盘下创建新的docker目录
mkdir -p /data/docker; //在根目录下新建
迁移/var/lib/docker目录下面的文件到刚才新建好的 /data/docker下面
cp -rvf /var/lib/docker/* /data/docker
修改 Docker 配置
vim /etc/systemd/system/docker.service.d/devicemapper.conf
在文件末尾添加:
--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=私服地址”。
重载配置,重启docker
systemctl daemon-reload;
systemctl restart docker;
systemctl enable docker;
启动成功后,确定容器没问题后删除/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
注意点
- 容器目录不可以为相对路径
- 宿主机目录如果不存在,则会自动生成
Docker 基本命令和使用的更多相关文章
- 15个Docker基本命令及用法
Docker入门教程:15个Docker基本命令及用法 本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的. AD:51CTO 网+ 第十二期沙龙:大话数据 ...
- 七、docker基本命令
Docker 基本命令 docker的基本命令 docker version :查看docker的版本号,包括客户端.服务端.依赖的Go等 [root@centos7 ~]# docker versi ...
- Docker基本命令
1.搜索Docker镜像 docker search <镜像名> 2.获取镜像 docker pull <镜像名> 3.查看本地镜像 docker images 4.删除镜像 ...
- docker:(1)docker基本命令使用及发布镜像
docker镜像可以完全看作一台全新的电脑使用,无论什么镜像都是对某一东西进行了配置,然后打包后可以快速移植到需要的地方直接使用 省去复杂的配置工作 比如java web项目部署,如果是新部署,需要装 ...
- 再谈docker基本命令
子曰,温故而知新 今日,再次看书之际,又寻得docker的几条使用命令,用小本本记下来 配置docker镜像源 当我们在拉去一些共有镜像时,默认,docker会向docker.io去获取,如果在拉取的 ...
- docker基本命令使用
学会使用docker命令帮助 docker help 子命令 查看docker镜像 docker images 搜索镜像 docker search 镜像名 下载镜像 docker pull 镜像名 ...
- Docker基本命令与使用 —— Docker容器的网络连接(四)
一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...
- Docker基本命令汇总
Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相 ...
- Docker基本命令与使用 —— Dockerfile指令与构建(三)
一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...
随机推荐
- ansible-七种武器
1. ansible命令 2. ansible-doc是ansible模块说明文档,针对每个模块都有详细用法说明以及应用案例介绍 3. ansible-console是ansible为用户提供的一款交 ...
- VNote笔记本和画图
VNote笔记本 跨平台的,以markdown标记语言记录的文本文档.从sourceforget.org开源网址下载即可. 画图集成: 1.集成graphviz http://www.graphviz ...
- MongoDB geonear和文本命令驱动程序2.0
文本查询,q作为查询字符串: coll.FindAsync<Foo>(Builders<Foo>.Filter.Text(q)); 文本查询需要一个文本索引.要从C#创建代码, ...
- 机器学习作业(一)线性回归——Matlab实现
题目太长啦!文档下载[传送门] 第1题 简述:设计一个5*5的单位矩阵. function A = warmUpExercise() A = []; A = eye(5); end 运行结果: 第2题 ...
- PHP生成登录图片验证码
很久之前写的 感觉登录还挺常用 记录一下. public function makeLoginCodeAction() //生成登录页的验证码 { Header("Content-type: ...
- 关于vue 里:class 的几种使用方式
最近一直在做vue项目 从网上搜索到的资料不太多.关于:class的使用 结合自己的实现 整理如下.接下来一篇写:style .其实从:class 这里可以想到:style的使用 也是类似的 一 cl ...
- rest_framework:版本控制
一.作用: 用于版本的控制,区分不同的功能,对于一些新增功能的添加更新就会在新的版本中体现,有点类似于,新版本就是软件发布的新版本,和老版本相比新增或者修改了一些功能 二.内置的版本控制类: from ...
- layui时间控件laydate
主要解决点击年份立马关闭控件弹窗实现和控件闪退问题 <div class="date-box"> 日期选择 : <input id="xl-2" ...
- R parallel包学习笔记2
这个部分我在datacamp上面学习笔记,可视化的性能很差,使用的函数也很少. 可以参考一下大佬的博客园个人感觉他们讲的真的很详细 https://cosx.org/2016/09/r-and-par ...
- SequoiaDB报告创建线程失败的解决办法
1.问题背景 对于分布式数据库和分布式环境,高并发和高性能压力的情况下,出现线程创建失败等等问题也是十分常见的,这时候就十分考虑数据库管理员的经验,需要能快速的定位到问题和瓶颈所在,快速解决.本文也是 ...