什么是Docker? Docker入门教程

概述

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.04
MAINTAINER dkpaulwen "wen229267643@gmail.com"

ADD $PWD/sources.list.trusty /etc/apt/sources.list
RUN ["apt-get","-y","update"]
RUN ["apt-get","-y","install","redis-server","redis-tools"]

EXPOSE 6379

CMD ["/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 .

-t 选项用来告诉docker daemon要构建的镜像的仓库名和镜像名为dkpaulwen/redis,其中dkpaulwen为仓库名,redis为镜像名

sudo docker images

查看镜像

root@iZm5ejdk51ejf0nkzwz3koZ:~/dockers/redis# docker images
REPOSITORY   TAG     IMAGE ID   CREATED    VIRTUAL SIZE
dkpaulwen/redis  latest    eb4b76ccb49c  18 minutes ago  213.4 MB

5. 用自定义的镜像创建容器

执行下面的命令

sudo docker run -d -p 6379 --name myredis dkpaulwen/redis

-d 选项告诉docker以后台的形式启动容器 -p 6379 告诉docker将docker机的6379端口与宿主机的随机端口(随机分配一个大端口号)相关联,也可以这样 -p 6666:6379,前者是宿主机,后者docker机 --name myredis 指定容器名 dkpaulwen/redis 是镜像名 这里没有指定要执行的命令,默认执行Dockerfile中的CMD指定的命令

6. 查看创建的docker容器

docker ps 命令

root@iZm5ejdk51ejf0nkzwz3koZ:~/dockers/redis# docker ps
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS      NAMES
3e1366140973  dkpaulwen/redis  "/usr/bin/redis-serve" 23 minutes ago  Up 23 minutes  0.0.0.0:32788->6379/tcp myredis

这里包含容器的一些属性,其中一个是ports——端口,可以看到,0.0.0.0:32788 -> 6379/tcp ,32788是宿主机端口,6379是被关联的docker容器端口,类型是tcp

7. 连接这个容器

redis-cli -h localhost -p 32788
root@iZm5ejdk51ejf0nkzwz3koZ:~/dockers/redis# redis-cli -h localhost -p 32788
localhost:32788> get username
"glen"
localhost:32788>

因为我在我的服务器上安装的docker,所以我也可以在自己的电脑上连接服务器上的docker容器

paul@paul-Inspiron-5420:~$ redis-cli -h www.wenjingyi.top -p 32788
www.wenjingyi.top:32788> get username
"glen"
www.wenjingyi.top:32788>
(0)

相关推荐

  • 什么是docker Docker入门教程第一篇

    Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的东西已经很多了.不过本文探讨了Docker的特点.特性.原理,还介绍了具有中国特色的安装测试过程,另外还谈到了Docker的社区生态和Dockerfile,并使用Dockerfile构建一个nginx环境. 缘起 在几个月前听说Docker,但是一直没有时间去研究,前一段时间趁着azure免费试用,赶紧实验一下,但是卡在了ubuntu基础镜像的下载上(由于国内网络的特殊原因),所以也就搁浅了,这里把经验和体会分享一下. Doc

  • Docker安装和简单使用入门教程

    安装 由于我本人使用的linux系统,原生支持docker,相对安装还是比较简单的 1:使用下面的官方脚本安装: wget -qO- https://get.docker.com/ | sh 2:输入下面的命令验证是否可以查看版本号,可以就是安装成功 sudo docker version 3:建议把当前使用的用户加到Docker用户组,就可以不用很次都sudo了 sudo usermod -aG docker your_username 4:重新登录,sudo权限才会成效 logout 至此,

  • Docker快速入门以及环境配置详解

    前言 数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难.而且这也是一个完全不常见的准入门槛. 还好,过去几年中出现了能够通过搭建孤立的环境来解决这个问题的技术.本文中我们就要介绍的这种技术名叫Docker.Docker能让开发者简单.快速地搭建数据科学开发环境,并支持使用例如Jupyter notebooks等工具进行数据探索. 简介 Docker 最初 dotCloud 公司内部的一个业余项目

  • Docker学习笔记之docker入门

    学习的一些疑问 如何热更新镜像(images)?(你可以快速启动或者销毁容器.这种时间几乎是实时的) 如何热更新游戏服? 好处在于各个应用之间环境相互独立,即使某一个容器崩溃也不会影响到其它容器: 每个容器使用端口如何维护?(方法1写在Dockerfile里面,不灵活:方法2在run的时候-p指定): 那这样的话,会存在好多linux用户,相当于每一个容器就要维护一个物理机(虚拟): 需要一套工具来管理维护镜像.容器的操作和状态: 目前主流使用docker都是应用到哪些场景中? 1. docke

  • docker快速入门教程

    10分钟教会大家如何玩转Docker,这是 1.前言 进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下. 2.Docker是什麽 Docker是一个开源的应用容器引擎,可以把应用以及依赖包放到一个可移植的容器中,然后发布到任何流行的 Linux 系统上,通过这种方式实现虚拟化. 提到虚拟化,大家应该十分熟悉了,有VMware,Xen,KVM等等很多.那么,Docker和VM有什么不同呢,我们用官网

  • Docker安装和基础用法 Docker入门教程第二篇

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt

  • 使用IPython来操作Docker容器的入门指引

    现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它. 话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例. 这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython. 安装docker-py 首先需要docker-py.注意这里的案例中我将会使用Ubuntu Trusty 14.04版本. $ pip install docker-py IPyh

  • CentOS 8.4安装Docker的详细教程

    目录 前言: 系统要求: 安装环境: 卸载旧版本: yum到底是干什么的? 使用yum安装: 配置yum稳定镜像源: 安装 Docker CentOS8 额外设置 开启Docker服务: 启动 Docker 守护进程: 手动启动 在系统启动时自动启动 Docker基础命令: 测试 Docker 是否安装正确 Docker学习系列文章 参考文章: 前言: Docker 是一个用于开发.传送和运行应用程序的开放平台.Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件.使用 Doc

  • Docker简单入门使用教程

    前言: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上.近几年来,Docker 在国内发展的如火如荼,特别是在互联网公司, Docker 的使用是十分普遍的,极大提高了应用的维护效率,降低了云计算应用开发的成本.本篇文章主要是带你入门Docker,介绍Docker的安装及简单使用. 1.安装Docker 想要学习Docker,我们首先要安装Docker,从 17.03 版本之后分为 CE(Co

  • docker容器安装及部署的超详细入门教程

    目录 1.安装docker 2.docker 安装 redis 3.docker 安装rabbitmq 4.docker 安装postgresql 5.docker 安装jdk 并配置环境变量 6.停止和删除容器 7.Docker部署SpringBoot项目 总结 1.安装docker (1)卸载以前安装的Docker容器 sudo yum remove docker \ docker-client \ docker-client-latest \docker-common \docker-la

  • Docker Swarm入门实例详解

    Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令.目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具.它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络. 1. Swarm 认识 Swarm 是目前 Docker 官方唯一指定(绑定)的集群管理工具.Docker 1.

  • Ubuntu15.10安装docker和docker-compose教程

    1.查看Linux内核版本(3.8以上)和操作系统位数64位 uname -a 结果: Linux jiaxiaoniu-jnq 4.2.0-16-generic #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 查看Ubuntu版本号命令:cat /etc/issue 2.安装Docker sudo apt-get install docker.io 3.安装后查看Docker版本 sudo do

  • CentOS7.3中Docker的安装教程

    一.简介 Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低. 本教程适合阅读人员:运维工程师.后端开发人员,通过本教程可以一步一步了解Docker的使用. 二.Docker的应用场景 1. Web 应用的自动化

  • pycharm与ssh远程访问服务器docker的详细教程

    pycharm与ssh远程访问服务器docker   背景:有些实验需要在服务器上完成,因此为了快速便利地在本地调试远程服务器上的代码,需要完成本地与远程服务器的直连.然而现阶段诸多服务器上安装有docker,通常需要在docker内完成调试代码,因此本文主要提供远程访问服务器docker的配置方法.   需要工具及说明: 一台远程服务器 pycharm:集成开发工具,在本地安装 ssh:远程访问工具,本地和远程服务器都要有 docker:容器,在远程服务器上 1.配置远程服务器docker 第

随机推荐