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 ...
随机推荐
- 题解 AT4278 【[ABC115A] Christmas Eve Eve Eve】
题目传送门. 分析 根据题目,我们可以发现要求如下: \(d\)的值 输出 \(d=25\) Christmas \(d=24\) Christmas Eve \(d=23\) Christmas E ...
- CTF中压缩文件的常见解法
此篇记录两篇记录的比较好的关于压缩文件破解的总结 链接:https://blog.csdn.net/xuqi7/article/details/71437882 https://blog.csdn.n ...
- Dijkstra算法依据项目改进版,输出路径
package dijkstra; import java.util.ArrayList; public class Dijkstra { ; /*private static int[][] Gra ...
- nginx 简单理解和配置
1.概念 Nginx是一个高性能的HTTP和反向代理的web服务器,同时也提供了IMAP/POP3/SMTP服务,Nginx是由伊戈尔·塞索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一 ...
- Mysql-从库只读设置
主从设置中,如果从库在my.cnf中使用init_connect来限制只读权限的话,从库使用非超级用户(super权限)登陆数据时,无法进行任何操作,仅可维持主从复制. init_connect='S ...
- Apache服务:使用 Apache 服务部署静态网站
1.安装Apache服务 第一步:安装Apache服务程序 yum install httpd 具体流程参考https://www.cnblogs.com/python-wen/p/1016845 ...
- Appium学习1-安装
Appium简介 Appium 是一个开源的.跨平台的测试框架,可以用来测试 Native App.混合应用.移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具.App ...
- Java基本语法--控制台输入(Scanner类)
通过Scanner类获取用户输入时,控制台会一直等待用户的输入,可以输入不同类型的值.本篇博客主要讲解从控制台输入值,即Scanner类的使用方法. Api文档中关于Scanner类的构造方法 键盘输 ...
- Mvc-WebAPI特性路由(自定义路由)Demo
Demo由VS2017编写. 1.先建一个WebApi项目 2.WebApiConfig.cs需要注册特性路由,config.MapHttpAttributeRoutes(); 3.项目默认有2个Co ...
- JS高级---正则表达式练习身份证号码
写正则表达式, 根据字符串来写正则表达式进行匹配 经验: 1.找规律 2.不要追求完美 身份证的正则表达式 15位或者18位 ([1-9][0-9]{14})|([1-9][0-9]{16}[0 ...