Docker是一种容器技术,实现了应用层的虚拟化,容器级别的虚拟机化加快了云计算时代的发展,Docker在迁移,启动,部署,安装等方面有着出色的发挥,这篇文章主要总结一下Docker里的基本操作。
本篇主要介绍ubuntu下docker的命令,centos类似。
Docker安装
ubuntu下
sudo apt-get install docker.io
centos下
yum install docker-ce
这里如果没有安装的话需要添加对应的源,如果需要下载最新版的docker也需要添加最新的源,系统本身带的源可能没有较新的环境。
Docker基本概念
docker有镜像,容器,仓库这三个东西,docker的管理类似GitHub,镜像相当于源码,存在仓库里,容器就是源码运行起来的样子,要用的镜像就去仓库里取了过后,运行起来变成了容器。
docker让我们不在担心我们系统的环境,因为主流的操作系统都支持docker。docker的好处当然很多很多,这里也就不一一说了。
docker的基本命令
- docker pull(从仓库拉镜像下来,如果设置了本地镜像地址就是本地,默认是docker官方镜像)
- docker search(在仓库中查找镜像)
- docker commit (将本地使用的镜像进行创建新的镜像,一般用于更改现有镜像环境后提交,常用参数-a,-m,-p,分别代表作者,提交信息,暂停容器提交时)
- docker login(登录远程仓库,默认为docker官方镜像)
- docker push(将镜像提交到仓库,默认为docker官方镜像,但必须登录)
- docker run(创建一个新的容器并运行一个命令,通常用-it参数,时常会使用-v,-d等命令)
-p:代表端口映射把容器内的ip映射给主机,如:-p 80:80
-v:将主机中的目录挂载到容器的某个目录(其中$PWD为当前目录)
-it:分配一个虚拟终端以交互模式运行容器
-m:知道容器的内存大小
-d:后台运行 - docker bulid(使用Dokcerfile创建一个镜像)
- docker start/stop/restart(启动,停止,重启一个容器,后面跟容器id)
- docker kill(杀死一个运行中的容器,后跟容器id)
- docker rm(删除一个或多个容器,后跟容器id)
- docker create (创建一个新的容器但不启动它)
- docker exec (在运行的容器中执行命令,可以通过docker exec -it id bash)
- docker ps (查看docker的进行的进程)
- docker inspect (获取镜像的元数据,返回一个json,时常用于获取容器id)
- docker top (查看容器中进程状况,和shell下top相同,后跟容器id)
- docker attach (连接一个正在运行的容器,连接过后退出的话可能会造成容器停止)
- docker events (显示容器的事件)
- docker logs (获取容器的日志,后跟容器id,区别于上面那个events事件是取容器启动,连接关闭等等的事件)
- docker wait (阻止容器运行)
- docker export (将容器进行保存(tar文件),后跟保存文件名和容器id)
- docker port (查看容器端口映射情况,后跟容器id)
- docker cp (容器和物理机之间拷贝东西,注意需要完整的容器id,需要inspect来查看)
- docker images(查看物理机上的容器镜像)
- docker rmi(删除镜像)
- docker save (保存镜像为tar文件)
- docker import (导入tar文件,创建镜像)
需要注意的是,命令中有些针对镜像,有些针对容器,希望大家清楚这两者的区别。关于仓库,他和GitHub类似,docker有docker hub,当然也可以自己建立仓库。
总结
本篇主要介绍一些docker的基本命令,对自己的学习的一个复习吧。