docker学习01--(docker初识)

版权声明:Mr.Wang 汪先生 https://blog.csdn.net/weixin_37650458/article/details/85785642

1.docker

  Docker是容器技术的一个代表,将程序隔离打包的技术。

  可以将任何应用以轻量级容器的形式来打包,来发布

可以粗糙的认为是一个轻量级的虚拟机,因为在某种程度上来讲,docker和虚拟机是有非常多的相似点。它们都是讲应用放在相对独立的环境里,调度主机的内核来运行。但Docker确实不是虚拟机,这张图是虚拟机和Docker的对比图,左边这张图是虚拟机,右边是Docker,左边的虚拟机子宿主机上有一层Hypervisor虚拟层,虚拟出了硬件和设备,在虚拟层上面会安装GuestOs,然后再运行各种各样的程序,docker 是不一样的,docker是不一样的,它在宿主机上有一个Docker engine,然后再运行各种各样的应用程序。因为它没有虚拟机层,它会比虚拟机轻量很多,包括程序运行速度也非常的快。

                       

2.Docker的安装:

    首先安装centos7,然后确保其能上网

    sudo yum update  (更新yum到最新)

     查看docker信息:docker info

     肯定是没有的:

    

   安装docker: yum -y install docker-io

   

  查看基本信息:docker info报错:

 

问题原因是因为docker服务没有启动,所以在相应的/var/run/ 路径下找不到docker的进程。

执行 service docker start 命令,启动docker服务,返回

再次查看docker info:

Docker架构:

从这张图可以看出,Docker的架构是非常简答的。中间是Host,上面装了一个Docker daemon的守护进程,守护进程应用做很多docker的操作,那么谁让 docker daemon来做这些操作呢,是最左边client,比如我们再终端操作输入dokcer的命令,客户端讲命令发送给docker守护进程,让docker去做一些操作,比如从最右边的镜像仓库拉取镜像到宿主机上,然后在宿主机上跑镜像,运行容器。

运行一个实例:

拉一个像过来运行输出helloword:docker run debian echo "Hello World"

Docker运行一个容器之前首先会看本地有没有这个容器需要的image,如果没有的话他会从远端的registry去下载,那么本地有什么image呢?

  可以用命令查看本地的docker image :docker images

  

接下来运行一个复杂的image:docker run nginx  先把nginx的image拉取下来。

运行命令:docker run -p 8080:80 -d  docker.io/nginx

-p 表示做端口映射,把docker image本身的这个80端口映射到本地host的8080端口,-d表示允许这个程序直接返回

查看docker进程:docker ps

这也就表明在本地主机(虚拟机)的8080端口开启了一个nginx服务

验证一下:端口确实在监听,但是重复映射就不行了,端口被占用了,简单粗暴的方式就是重启docker服务

现在想让这个页面呈现一些和docker相关的内容:
准备了这么一个index文件:

把文件拷贝到容器里面去:

docker cp index.html containerId://usr/share/nginx/html

成功:

停止docker容器:docker stop  e02543f03ea7

验证是否停止:停了

如果再运行docker,修改过的页面将没有了,因为docker容器内所作的修改都是暂时的。

如果想要永久的保存那么就在拷贝index.html到文件中去后再,执行命令

docker commit –m ’msg’ containerId [name]

docker commit -m 'fun' 0e3a3fe4b7d1

事实上是产生了一个新的image:

没有名字,没有tag

好了,现在删掉不要的:docker rmi 3b82ab01ef3d

 

查询所有的容器:

如果要删除:docker rm 容器id

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_37650458/article/details/85785642