美文网首页
Docker初探

Docker初探

作者: 刘昊2018 | 来源:发表于2018-05-13 17:07 被阅读85次

Docker 初探

学习docker,最忌讳的是一上来就被各种概念弄迷糊,初学者可以完全先避开理论,从敲命令开始。当我把命令敲熟以后,我们自然就知道docker是怎么回事了,也才能体会docker究竟帮我们解决了哪些痛点。

安装

docker的安装需要注意以下两点:

  • 官方推荐在ubuntu上安装

  • 如果使用centos,最好是在centos7以上安装

简单使用

安装成功之后,我们启动它,并让docker随开机启动。

systemctl start docker
systemctl enable docker
docker info //查看docker概要信息

镜像和容器

拉取

在讲镜像之前,我们先介绍一下docker hub网站,我们可以在上面寻找我们需要的镜像。

比如,我们在这个网站搜索mysql
一般来说,标记有office的都是docker官方发布的镜像。

我们进入这个主页:
mysql image

这里面记录了发布者对这个镜像的详细说明,我们注意到,提示我们使用如下这条命令:

docker pull mysql

这条命令的意思就是,拉取mysql镜像,我们还注意到这里提供了不同mysql版本的镜像,这里默认拉取的是latest版本。

如果我们想指定版本,比如5.7.18版本,我们可以这样来做:

docker pull mysql:5.7.18

在终端输入这条命令后,我们稍作等待。

下载完之后,我们输入一下命令来查看:

docker images
docker.io/mysql 5.7.18 44a8e1a5c0b2   10 months ago 407 MB

可以看到,上面详细的列出了这个镜像的信息,包括镜像名称,版本,id,大小等等。

使用

我们已经成功拉取了mysql 5.7.18这个镜像,那么我们如何使用呢。我们使用下面的命令,继续探索:

docker run -di --name=mysql1 -p 9906:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.18

docker exec -it mysql1 /bin/bash

这两条命令的意思是:

  • 运行容器 mysql1,暴露容器的3306端口,映射宿主机的9906端口。

  • 进入容器交互式环境。

之后,我们所在的位置,就是容器内部了

为了测试此时mysql是正常的,我们有两个方法:

一.输入命令:

mysql -uroot -p123456
即可进入mysql客户端

二.远程连接
使用navicat远程连接,需要注意的是,此时端口不是3306

host :宿主机host
port:9906
用户:root
密码:12346

即可连接。

巩固

为了巩固一下上述命令,我们再玩一把node.js来练习。

第一步:拉取镜像

docker pull node

第二步:运行并进入容器

docker run -di --name=nodejs node

//在宿主机上创建一个index.js 将其拷贝到容器中

touch index.js
vi index.js   // write code  console.log('Hello World');

docker cp ./index.js nodejs:/
拷贝至容器根目录

docker exec -it nodejs /bin/bash
node index.js

Hello World

此外,我们还可以使用 -v进行宿主机和容器的目录映射,大家可以自行探索。

Tomcat

作为java程序员,我们还是绕不过Tomcat的。

拉取镜像

docker pull tomcat:8

运行容器

docker run -di --name=tomcat1 -p 8080:8080 tomcat:8
docker exec -it tomcat1 /bin/bash

我们进入到/usr/local/tomcat/webapps/ROOT下
创建一个index.html,写上hello

之后,访问容器的宿主机ip:8080就可以看到hello的内容。

二次打包

显然,tomcat容器被我们修改过内容,我们可以将它再次制作成镜像,为我们自己所用。

docker commit tomcat1 tomcatx

tomcat1是容器名
tomcatx 是新的镜像名
docker images

推送自己的镜像到阿里云

阿里云docker相关的版块有丰富的说明和提示,感兴趣的同学可自行探索,不再赘述。

实践

我们以gogs为例,来演示docker的运用。

gogs是类似gitlab的git私服。

拉取镜像

docker pull gogs/gogs

相关文章

  • 23.Docker初探

    Docker初探 Docker简介 Docker 最初是 dotCloud 公司创始人 Solomon Hykes...

  • Docker Swarm的前世今生

    概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,...

  • Docker 初探

    一、容器(Container) 简单来说,容器是对应用程序及其依赖库的一种封装。 乍看上去,容器就像一个轻量级的虚...

  • docker初探

    简介 Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意...

  • Docker初探

    Docker 初探 学习docker,最忌讳的是一上来就被各种概念弄迷糊,初学者可以完全先避开理论,从敲命令开始。...

  • Docker 初探

    开篇先说句 很神奇的docker 刚刚接触这个东西,大致的理解就是在你的机器上安装一个可以迁移的虚拟机,然后把你机...

  • Docker初探

    什么是Docker? 简介:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足...

  • 初探Docker

    这是我在某招聘网站上看到的招聘 Java开发工程师 的招聘要求,其中有一条熟悉 docker 成为了你快速入职的加...

  • Docker初探

    1.docker的优势 更高效的利用系统资源 更快的启动时间 一致的运行环境 持续交付和部署 更轻松的迁移 更轻松...

  • docker初探

    docker最早是LXC(Linux Container)的二次封装发行,后来使用的是Libcontainer技术...

网友评论

      本文标题:Docker初探

      本文链接:https://www.haomeiwen.com/subject/vejldftx.html