[toc]mysql
能够将docker容器理解为一个轻量级的沙盒。每一个容器内运行着一个应用,不一样的容器相互隔离,容器之间也能够经过网络互相通讯。容器的建立和中止十分快速,容器自身对系统资源的额外需求也十分有限,远远低于传统虚拟机。sql
传统方式是在硬件层面实现虚拟化,须要有额外的虚拟机管理应用和虚拟机操做系统层。Docker容器是在操做系统层面上实现虚拟化,直接复用本地主机的操做系统,所以更加轻量级。docker
Docker镜像相似于虚拟机镜像,能够将它理解为一个只读的模板。镜像是建立Docker容器的基础。ubuntu
例如,一个镜像包含一个基本的操做系统环境,里面仅安装了Apache应用程序,则能够把它称为一个Apache镜像。vim
Docker容器相似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。bash
容器是从镜像建立的应用运行实例。它能够启动,开始,中止,删除,而这些容器都是彼此相互隔离,互不可见的。网络
Docker仓库相似于代码仓库,是Docker集中存放镜像文件的场所。ui
docker pull 镜像名称:标签
复制代码
docker images 或 docker image ls
复制代码
使用tag命令添加镜像标签 docker tag
复制代码
docker inspect 镜像id
复制代码
docker search mysql
复制代码
docker rmi 镜像id 或 docker image rm 镜像id
复制代码
docker image prune
复制代码
docker push 镜像名称:标签
复制代码
docker create -it 镜像名称:标签
复制代码
使用create命令新建的容器处于中止状态,可使用docker start命令来启动它spa
将中止状态的容器从新启动
docker start 容器id
docker restart 容器id 先将一个运行态的容器先终止,而后再从新启动
复制代码
docker ps
查看全部容器的id
docker ps -qa
复制代码
docker run -it ubuntu:18.04 /bin/bash
复制代码
-t:让docker分配一个伪终端,并绑定到容器的标准输入上。操作系统
-i:则让容器的标准输入保持打开
更多命令选项能够经过man docker-run
来查看
进入容器内部后,能够经过Ctrl+d或者输入exit命令来退出容器
当用户使用exit命令退出bash进程以后,容器也会自动退出。
-d:能够经过添加-d参数来容器在后台以守护态形式运行
暂停容器
docker pause 容器id
恢复容器
docker unpause 容器id
终止容器
docker stop 容器id
此时执行 docker container prune 会自动清除掉全部处于中止状态的容器
处于中止状态的容器,能够经过docker start命令来从新启动
复制代码
attach是Docker自带的命令
docker attach 容器id
复制代码
使用attach有时候并不方便,当多个窗口同时attach到同一个容器的时候,全部的窗口都会同步显示,当某个窗口因命令阻塞时,其余窗口也没法执行操做了。
exec
docker exec -it 容器id /bin/bash
复制代码
docker rm 容器id
复制代码
docker container inspect 容器id
复制代码
docker top 容器id
复制代码
docker stats
复制代码
container cp命令支持在容器和主机之间复制文件。
将本地的路径data复制到test容器的/tmp路径下:
docker cp data test:/tmp/
复制代码
docker container port 容器id
复制代码
apt-get update
这个命令的做用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
apt-get install vim
复制代码