Docker初体验
Docker 是一个开源的基于 LXC 的高级应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(不会总结,但是觉得百度说的蛮好);
综合以上概念,我们可以看出docker是一个应用容器的引擎,其中关键词有两个,应用容器,引擎,引擎自不必说,最为关键的是应用容器,也就是说docker为应用程序的运行提供独立的容器,而且该容器还可以移植,想想都觉的美爆了,应用程序可以移植,如何移植呢,我的想法是通过将应用程序打包build成对应的image(镜像),通过docker平台镜像的随处运行来实现应用程序的移植,关于理论部分就说这么多,i am still learning ,来一波实践;
关于docker的安装,方法众多,因为docker是在Linux平台下面开发出来的,所以即使他提供了MAC,Linux,Windows下的相关client,Linux平台也是最佳的,下面说说如何在centos7上面安装docker:
1、root账户登录;
2、yum -y install docker(或者普通用户登录 sudo yum -y install docker)
ok!
其他linux 平台参见次安装
安装成功后首先要做的便是启动docker服务:
service docker start(systemctl start docker)
查看docker版本:
docker -v
Docker version 1.12.6, build 88a4867/1.12.6
从仓库拉取第一个docker的demo;
docker pull hello-world
以下便是docker从远端获取镜像过程的详解:
docker获取镜像示意图docker在拉取镜像之前,先检查本地仓库是否有该镜像,有的话直接使用,没有的话从远端服务器拉取;docker run用来运行docker images,在运行之前需要先获取docker 镜像,若本地(实则是本地的服务端,Linux上面client,与server都在一台机子上面,所以叫本地)存在,直接运行本地实例,不存在来去远端实例;
docker 镜像仓库在国外架设,因此下载起来可能需要某些特殊手段,好在网易给我们提供了很多的常用的镜像
网址参见:http:/c.163.com
docker images 用于查看现有images
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/tomcat latest b226d7ee3462 31 hours ago 292.4 MB
docker.io/hello-world latest 1815c82652c0 7 weeks ago 1.84 kB
hub.c.163.com/library/nginx latest 46102226f2fd 3 months ago 109.4 MB
现在开始运行第一个docker 程序:
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
此过程描述运行了一个docker的实例,而且描述了,此过程经过的四个步骤(可自己参阅);
hello-world只是简单的命令行输出而已,现在我们需要在docker中运行一个Nginx服务,步骤如下:
1、下载镜像(登录网易蜂巢->镜像仓库->发现更多镜像-搜索nginx-复制右上角下载地址下载镜像)
docker pull hub.c.163.com/library/nginx:latest
2、docker images 查看下载好的镜像名称
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/tomcat latest b226d7ee3462 31 hours ago 292.4 MB
docker.io/hello-world latest 1815c82652c0 7 weeks ago 1.84 kB
hub.c.163.com/library/nginx latest 46102226f2fd 3 months ago 109.4 MB
3、运行镜像(由于nginx隶属服务器类型,需要提供不间断的服务,因此需要将其放置在后台运行)
docker run -d -p 8080:80 hub.c.163.com/library/nginx
d84e097906770e5fb5911aaee6adce7654b08034a1831c084c40a900c723227e
释义:docker run 用来运行镜像 hub.c.163.com/library/nginx 为容器名称,-d 是将docker运行实例放在后台运行,-p 是将docker 容器内端口与本机断后做映射,前者是本机端口,后者是容器内的端口
命令运行后返回的是容器的id(所谓容器就是指镜像运行的一次实例,.可以包含一个独立的操作系统)
4、查看是否运行成功:
在本地浏览器输入如:http://localhost:8080 看是否会有nginx works
5、docker ps 查看现在运行的容器有哪些
6、docker exec -it 容器id进入容器 /bin/bash
至此dcoker 运行nginx结束
学习中·······
网友评论