Docker是一个开源的容器引擎,能够帮助咱们更快的交付应用。Docker可将应用程序和基础设施层隔离,而且能将基础设施看成程序进行管理。可更快的打包、测试以及部署应用程序,并可减小从编写到部署代码的周期。linux
Docker属于OS级别的虚拟化,kernel经过建立多个镜像来隔离不一样的app进程,因为kernel是是共享,并且自己linux image也不大,性能损耗几乎能够不计,并且内存占用也不大,大大节约了设备成本。nginx
一、拉取镜像,Docker镜像保存在/var/lib/docker目录下docker
docker pull image_nameubuntu
二、删除镜像centos
docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30tomcat
三、查看当前有哪些容器正在运行安全
docker psbash
四、查看全部容器服务器
docker ps -a网络
五、启动、中止、重启容器命令
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
六、后台启动一个容器后,若是想进入到这个容器,可使用attach命令
docker attach container_name/container_id
七、删除容器的命令:
docker rm container_name/container_id
八、查看当前系统Docker信息
docker info
九、执行docker pull centos会将Centos这个仓库下面的全部镜像下载到本地repository
docker pull centos:latest
十、docker run
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,一般与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器从新分配一个伪输入终端,一般与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络链接类型,支持 bridge/host/none/container:<name|id> 四种类型;
--link=[]: 添加连接到另外一个容器;
--expose=[]: 开放一个端口或一组端口;
使用镜像 nginx:latest,之后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash