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 ...
随机推荐
- 小白月赛22 F: 累乘数字
F:累乘数字 考察点: 思维,高精度 坑点 : 模拟就 OK 析题得侃: 如果你思维比较灵敏:直接输出这个数+ d 个 "00"就行了 当然,我还没有那么灵敏,只能用大数来搞了 关 ...
- 虚拟机floppy0
网上搜索方法是:删除该虚拟机的软盘即可. 具体原因还不知道,以后再补上原因
- Linux的VMware虚拟机无法上网问题
很多时候,Linux无法上网,不管改成nat模式还是主机模式都不行.这时候可以选择进行重置: 首先点击编辑,之后点击虚拟网络编辑器, 然后移除VMnet0和VMnet8网络,点击确定: 然后再打开虚拟 ...
- Jungle Roads POJ - 1251 模板题
#include<iostream> #include<cstring> #include<algorithm> using namespace std; cons ...
- Linux下用Bash语言实现输出最大值的功能
题目链接: 题目描述 编写一个程序,输入a.b.c三个值,输出其中最大值. 输入 一行数组,分别为a b c 输出 a b c其中最大的数 样例输入 10 20 30 样例输出 30 复习下Linux ...
- Android_几种菜单
Android中的菜单有如下几种: OptionMenu:选项菜单,android中最常见的菜单,通过Menu键来调用 SubMenu:子菜单,android中点击子菜单将弹出一个显示子菜单项的悬浮框 ...
- idea 添加 开发者信息
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse( ...
- DataGridView 定位到指定行
//定位到指定行(样式)dataGridView1.ClearSelection();dataGridView1.Rows[selectIndex].Selected = true; //让指定行处于 ...
- 5G将至,4G降速:是谣言还是真相?
畅用移动智能终端设备,早已成为大众日常生活中的一部分.卫报专栏作家伯克曼提到,"据估计,70%的人会抱着手机或iPad刷资讯入睡."当移动智能终端变得如此重要时,与之息息相关的网络 ...
- 回环屏障CyclicBarrier
上一篇说的CountDownLatch是一个计数器,类似线程的join方法,但是有一个缺陷,就是当计数器的值到达0之后,再调用CountDownLatch的await和countDown方法就会立刻返 ...