docker命令及简单使用

docker基础

镜像:是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。镜像可以用来创建Docker容器

容器:镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。可以把容器看做是一个简易版的linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库:存放镜像的一个场所,仓库分为公开仓库和私有仓库。 最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库

(dockerpool.com)

docker基础命令

docker search ubuntu ---查找ubuntu系统的容器

docker pull ubuntu ---下载ubuntu容器

docker images ---查看现有的镜像

docker ps     ---查看docker的进程

docker ps -a  ---查看docker所有运行过的进程

docker rm 名字 ---删除已经停止进程的容器

docker rmi ubuntu ---删除镜像

docker start -i 名字 ---启动已经关闭的进程

docker stop 名字  ---关闭运行的容器

docker run --name  起名字 -d  容器 /bin/bash  --- -d是以后台的形式运行

docker logs -t peiqi12  --- t为显示时间的形式显示进程容器log日志

docker run -p 41061:22 -p 8888:80  -d -v /web tomsik68/xampp ---访问的时候利用ssh访问镜像

ssh -p 41061 root@localhost  ---密码root可以连接ssh进入xampp主机

在www目录下创建index.html即可。

访问url xx.xx.xx.xx:8888/www/index.html

参数说明

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-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: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口;

实战运行


上述命令我们开启了 docker服务,并且以交互式命令并且以伪终端(因为docker都是以进程的形式运行)的形式,进入了docker交互页面,参考上面-i -t,并且给容器名字命名为 ubuntu,主机名为 test。 /bin/bash的作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动bash。所有docker容器都是以进程而存活,如果没有进程那么自动关闭。

这样进入搭建docker,如果退出终端的话,相应进程也会关闭,docker也就终止,我们接下来介绍一个长期能够搭建在web上的docker命令。



我们用端口映射进入docker进程, -p 物理机端口:容器端口。这里设置了两个端口,一个是方便进入容器管理,另一个是映射80端口服务,-d返回容器ID,-v称之为 挂载也称为存储卷。此时在/www目录写web,整套的 docker web服务进程搭建完毕。

这样便会在后台进程运行,其他命令如:

docker run hello-world

只是一个进程,运行完毕就消失了。


总结

1.docker 可以理解为开启一个或一些进程,但是环境和物理机是分开的,可以用端口映射,映射到物理机,在物理机上是一套完整的操作系统,会占用其他资源,但是docker是进程级别的,资源全部用在进程上,所以速度会快。

2.可一台服务器搭建多个分离的linux环境,Docker容器可以理解为在沙盒中运行的进程,这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等。但这个沙盒默认是不会运行任何程序的,需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容器也会完全停止。

3.使用方便速度快,由于是一个进程,所以只需要一个命令打开进程便可以开启一个web服务上线一套网站等且环境与物理机分离,对物理机来说比较安全。或者其他服务等。

你可能感兴趣的:(docker命令及简单使用)