Docker初探

2018-05-13  本文已影响85人  刘昊2018

Docker 初探

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

安装

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

简单使用

安装成功之后,我们启动它,并让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

这两条命令的意思是:

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

为了测试此时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
上一篇下一篇

猜你喜欢

热点阅读