Docker学习计划二:基本配置

来源:http://www.ityouknow.com/docker/2018/03/07/docker-introduction.htmlhtml

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。linux

程序在这个虚拟容器里运行,就好像在真实的物理机上运行同样。有了 Docker,就不用担忧环境问题。nginx

为何要使用Docker?sql

 

一、更快速的交付和部署docker

 

对开发和运维(devop)人员来讲,最但愿的就是一次建立或配置,能够在任意地方正常运行。json

 

开发者可使用一个标准的镜像来构建一套开发容器,开发完成以后,运维人员能够直接使用这个容器来部署代码。 Docker 能够快速建立容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其余成员更容易理解应用程序是如何建立和工做的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。centos

相关概念:api

 

Docker是CS架构,主要有两个概念:tomcat

 

  • Docker daemon: 运行在宿主机上,Docker守护进程,用户经过Docker client(Docker命令)与Docker daemon交互
  • Docker client: Docker 命令行工具,是用户使用Docker的主要方式,Docker client与Docker daemon通讯并将结果返回给用户,Docker client也能够经过socket或者RESTful api访问远程的Docker daemon

 

Docker的三个主要概念:安全

  • Docker image:镜像是只读的,镜像中包含有须要运行的文件。镜像用来建立container,一个镜像能够运行多个container;镜像能够经过Dockerfile建立,也能够从Docker hub/registry上下载。
  • Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。
  • Docker hub/registry: 共享和管理Docker镜像,用户能够上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也能够搭建本身私有的Docker registry。

镜像就至关于打包好的版本,镜像启动以后运行在容器中,仓库就是装存储镜像的地方。

 

Docker安装

建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。所以想要安装 docker,只须要运行下面的 yum 命令:

yum install docker

 安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

service docker start
chkconfig docker on

 

如采用CentOS 7中支持的新式 systemd 语法,以下:

systemctl start docker.service
systemctl enable docker.service

 

测试

docker version

 

输入上述命令,返回docker的版本相关信息,证实docker安装成功。

 

Hello World

下面,咱们经过最简单的 image 文件”hello world”,感觉一下 Docker。

由于国内链接 Docker 的官方仓库很慢,所以咱们在平常使用中会使用Docker 中国加速器。经过 Docker 官方镜像加速,中国区用户可以快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户如今将会享受到更快的下载速度和更强的稳定性,从而可以更敏捷地开发和交付 Docker 化应用。

Docker 中国官方镜像加速可经过registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍须要从美国镜像库中拉取。

修改系统中docker对应的配置文件便可,以下:

vi  /etc/docker/daemon.json #添加后 { "registry-mirrors": ["https://registry.docker-cn.com"], "live-restore": true }

 

运行下面的命令,将 image 文件从仓库抓取到本地。

docker pull library/hello-world

 

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

抓取成功之后,就能够在本机看到这个 image 文件了。

docker images #显示结果 REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB

 

如今,运行这个 image 文件。

docker run hello-world #显示结果 Hello from Docker! This message shows that your installation appears to be working correctly. ...

 

输出这段提示之后,hello world就会中止运行,容器自动终止。有些容器不会自动终止,由于提供的是服务,好比Mysql镜像等。

经常使用命令

除过以上咱们使用的Docker命令外,Docker还有一些其它经常使用的命令

拉取docker镜像

docker pull image_name

 

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

docker images

 

删除镜像

docker rmi  docker.io/tomcat:7.0.77-jre7   或者  docker rmi b39c68b7af30

 

查看当前有哪些容器正在运行

docker ps

 

查看全部容器

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 rm $(docker ps -a -q)

 

查看当前系统Docker信息

docker info

 

从Docker hub上下载某个镜像:

docker pull centos:latest
docker pull centos:latest

 

查找Docker Hub上的nginx镜像

docker search nginx

 

执行docker pull centos会将Centos这个仓库下面的全部镜像下载到本地repository。

相关文章
相关标签/搜索