什么是Docker? Docker入门教程

  • pk10558.cn   来源:勤勤网   2020-05-21 02:56:25  

概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现 虚拟化 。

docker的配图很形象。一只鲸鱼(容器)上面装载着货物(应用)。

docker安装

debian/ubuntu等系统可以直接下载deb进行安装

docker repo

sudo dpkg -i package-name.deb

其他平台参照 docker官网 docker hello world

安装好docker之后,执行下面语句确认docker是否安装成功

sudo docker info

如果docker没有启动,则执行

sudo /etc/init.d/docker start或sudo service docker start

执行下面的语句启动一个docker容器

sudo docker run -i -t ubuntu:14.04 /bin/bash

docker run ,运行容器的命令 -i -t , 执行docker以交互(将执行的过程显示到shell中)的形式启动容器 ubuntu:14.04 , ubuntu表示镜像名,14.04表示镜像的标签 /bin/bash , 表示要让启动的容器执行/bin/bash语句

首次执行这段代码时,docker会下载ubuntu:14.04对应的镜像。

docker镜像和容器

镜像和容器,是docker中最最重要的两个概念。

镜像:在某一操作系统(一般是linux)的基础上,添加某个服务(如mysql服务),所构成的一个处于静态的系统镜像,可以理解为某系统的iso镜像文件。(我自己的理解[捂脸])

容器:根据镜像安装之后的状态

sudo docker images

上面语句列出本电脑(宿主机)上的镜像

sudo docker pull redis:3

上面语句可以从docker官方hub中获取一个镜像名为redis且标签为3的镜像。看它的名字可以知道是安装了redis 3 版本的镜像

镜像的自定义 创建一个安装好redis服务器的镜像

1 . 创建目录和Dockerfile

2. 下载163的源文件到redis文件夹下,和Dockfile同一目录下(由于ubuntu原来的软件源贼慢,所以将其替换)

3. 编写Dockfile,Dockfile中的内容如下

FROM ubuntu:14.04MAINTAINER dkpaulwen "wen229267643@gmail.com"ADD $PWD/sources.list.trusty /etc/apt/sources.listRUN ["apt-get","-y","update"]RUN ["apt-get","-y","install","redis-server","redis-tools"]EXPOSE 6379CMD ["/usr/bin/redis-server"]

FROM ubuntu:14.04 : 表明我们所构建的镜像是基于ubuntu:14.04镜像的 MAINTAINER name email : 构建人的名字和邮箱 ADD path1 path2 : 将宿主机中的path1文件/目录 复制到 docker中 RUN ["command","option",...] :表示执行command命令 , 也可以写作 RUN command option parameter 这样的形式。上面执行的两个语句更新了源,安装了redis EXPOSE 6379 : 表示docker机会将6379端口暴露给宿主机,可以将宿主机的某个端口与这个端口连接,这样就可以在外部使用这个容器中运行的应用 CMD ["command","option",...] : 表示启动容器时若不指定执行的命令,就执行这个命令指定的命令

4 . 构建镜像

在redis目录下执行命令

sudo docker build -t dkpaulwen/redis .