Docker学习之路(一)

什么是Docker

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案,Docker的基础是Linux容器(LXC)、Cgroup等技术

docker和传统虚拟化的区别

Docker和传统虚拟化(KVM、XEN)方式的不同之处是容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件的基础上,虚拟出自己的系统,再在系统上部署相关的APP应用。

重点:Docker虚拟化有三个概念需要理解,分别镜像、容器、仓库。


1、镜像:docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个模板。
2、仓库:仓库是存放镜像的地方,分为公开仓库(public)和私有仓库(private)两种形式
3、容器:容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。

Docker虚拟化的安装

center7以上机器才能使用yum直接安装,如果其他版本需要安装centos扩展源epel。
centos6.x系列安装Docker软件,首先要关闭selinux,然后需要安装相应的epel源,如下:

首先关闭selinux

 vi /etc/selinux/config 修改文件内容
ELINUX=disabled

然后命令行sestatus检查状态
下载扩展包

  wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

安装 rpm -ivh epel-release-6-8.noarch.rpm
安装容器和资源限制 yum install lxc libcgroup
安装docker yum install docker-io

注意:如果上面命令安装失败,可以用下面命令下载

yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

启动docker进程 /etc/init.d/docker start
查看docker进程 ps -ef|grep docker
下载tomcat镜像 docker pull tomcat

操作命令

查看镜像 docker images
删除一个镜像 docker rm 镜像名
保存一个镜像 docker save 镜像名 > centos.jar
导入一个镜像 docker load < nginx1.11.tar
导入容器 docker import - centos7
导出容器 docker export i容器d >centos7.tar
查看docker版本 docker version
查看docker服务启动 ps -ef |grep docker
查看容器状态 docker ps -l
搜索可用docker镜像 docker search centos
运行镜像 docker run centos
关闭容器 docker stop id
启动某个容器 docker start id
进入一个容器 docker attach id
删除一个容器 docker rm id
删除一个镜像 docker rmi images
退出一个容器 exit 正常退出不关闭Ctrl+P+Q
容器中安装ntpdate `docker run centos yum install ntpdate

docker run -i -t centos(容器名称) /bin/bash 在容器里启动一个/bin/bash shell环境,可以登录进入操作,其中-t表示打开一个终端的意思,-i表示可以交互输入
查看系统版本 cat /etc/redhat-release * 7.0以上系统的命令

Docker 是一个开源的容器化平台,它可以让开发者将应用程序和其依赖项打包成一个容器,使得应用程序在不同的环境中都能够运行。Docker 提供了一种新的方式来构建、部署和运行应用程序,它可以大大降低开发和运维成本,提高应用程序的可移植性和可靠性。 本文将介绍 Docker 的基础知识,包括 Docker 的安装、镜像和容器的管理、容器的网络和存储等方面。 ## Docker 的安装 Docker 官方支持多个操作系统,包括 Linux、Windows 和 macOS。在不同的操作系统中,Docker 的安装方式也有所不同。在 Linux 系统中,可以通过以下命令来安装 Docker: ```shell curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` 在 Windows 和 macOS 中,可以下载 Docker Desktop 来安装 Docker。 ## Docker 镜像和容器的管理 Docker 镜像是应用程序和其依赖项的打包格式,可以通过 Dockerfile 来定义。Dockerfile 是一个文本文件,其中包含了应用程序的构建规则和依赖项的安装方式。通过 Dockerfile 构建的镜像可以上传到 Docker Hub 或者私有仓库中,其他人可以通过 Docker Hub 或者私有仓库来获取镜像。 创建 Docker 镜像的方式很多,可以通过手动构建、基于现有镜像构建、使用 Docker Compose 等方式来创建镜像。以下是一个基于 Ubuntu 镜像创建 Node.js 应用程序的 Dockerfile: ```dockerfile FROM ubuntu:18.04 RUN apt-get update && apt-get install -y nodejs npm COPY . /app WORKDIR /app RUN npm install EXPOSE 3000 CMD ["npm", "start"] ``` 通过以上 Dockerfile 可以构建出一个包含 Node.js 应用程序的镜像。接下来,我们可以使用如下命令来启动容器: ```shell docker run -p 3000:3000 -d my-node-app ``` 其中,-p 参数指定了容器端口和主机端口的映射关系,-d 参数指定了容器在后台运行。 通过 docker ps 命令可以查看正在运行的容器,通过 docker stop 和 docker start 命令可以停止和启动容器。 ## 容器的网络和存储 Docker 容器之间可以通过网络进行通信,Docker 提供了多种网络模式,包括桥接模式、主机模式、容器模式和覆盖网络模式等。在默认情况下,Docker 容器使用桥接网络模式,可以通过以下命令创建一个自定义的网络: ```shell docker network create my-network ``` 通过 --net 参数可以将容器加入到指定的网络中。例如,通过以下命令创建一个基于自定义网络的容器: ```shell docker run --name my-nginx -p 80:80 --net my-network -d nginx ``` Docker 容器还可以使用本地存储或者云存储来存储数据。Docker 提供了多种存储驱动程序,包括 overlay2、aufs 和 devicemapper 等。通过以下命令可以创建一个本地存储卷: ```shell docker volume create my-volume ``` 通过 -v 参数可以将容器挂载到指定的存储卷上。例如,通过以下命令创建一个基于本地存储卷的容器: ```shell docker run --name my-mysql -v my-volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql ``` 以上是 Docker 的基础知识介绍,Docker 还有很多高级功能和应用场景,例如 Docker Compose、Docker Swarm 和 Kubernetes 等。学习 Docker 可以让我们更好地理解容器化技术和云原生应用程序的开发和部署。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值