创建一个基于docker的http应用(一)

本教程属于初学者教程,大神请自动略过。
Docker 是一个开源程序,它可以将应用及其完整的依赖包捆绑到一起,并打包为容器。在云大行其道的今天,虚拟化发挥了其无限潜能。未来会有更多的服务部署在云端。在实际开发的过程中,常常会因为现网环境和开发环境不一致导致各种各样的问题出现,但是如果我们利用docker则会完全规避这个问题。docker的好处这里就不一一列举了,接下来,让我们从0开始,创建一个dock的http应用吧。无论之后要开发多么复杂的应用,这个教程都会使你收益匪浅。


知识点&目录

1、在windows上安装docker
2、wsl下安装docker,配置daemon
3、编写一个Hello Container的基于http web的应用
4、dockerfile初探
5、构建/运行容器


正文

一、在windows安装docker应用
如果你是在玩docker toolbx你可以参考这篇文章。
https://www.jianshu.com/p/aa41f5b77aea
下面我们来看下怎么玩docker for windows:
1、在docker官网下载docker for windows,为什么说坑爹的,现在的docker竟然要求先注册才能下载。

安装图标

点击安装:一直next,此处省略10个字
安装完成后在桌面会出现一个docker的图标,双击即可运行。
运行图标

状态栏右下角出现图标:

即表示docker服务已经成功拉起。
如果你想在wsl编译运行容器,则需要右击图标->settings,有以下界面,选择Expose daemon on tcp://localhost:2375 without TLS,至于为什么,稍后就会揭晓。
setting


以上windows端的docker安装就完成了,是不是太easy了!

二、wsl端的docker安装
这里所述的wsl均是基于ubuntu的,其他系统换汤不换药。
更新源:apt-get update
安装docker: apt-get install docker
读条完毕,至此wsl的docker也安装完成了。是不是更简单。

**三、测试docker是否安装成功
键入:docker version

Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.1
 Git commit:        2d0083d
 Built:             Wed Jul  3 12:13:59 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

出现以上界面,就说明docker已经安装成功了。

但是下面显示
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
是因为wsl目前不支持docker daemon,需要使用Docker CLI连接到windows通过Docker for Windows或您创建的远程Docker守护进程。之前已经在windows端开启docker服务的时候已经在setting中开启了Expose daemon on tcp://localhost:2375 without TLS这个选项.
设置一下环境变量:export DOCKER_HOST=tcp://127.0.0.1:2375

Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.1
 Git commit:        2d0083d
 Built:             Wed Jul  3 12:13:59 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 04:13:06 2019
  OS/Arch:          linux/amd64
  Experimental:     false

可以看到Client 和 Server都起来了。

四、来玩个hello world吧。
输入:docker pull hello-world来拉取一个hello world的image
查看image: docker image ls
看到hello-world的image已经存在:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              fce289e99eb9        6 months ago        1.84kB

运行image container:
输入:docker run hello-world
显示如下:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

至此WSL下的docker环境就已经安装完成,下一篇教程我们来自己编写一个hello docker的web应用。可以在浏览器显示的那种。
快速跳转。
https://www.jianshu.com/p/ac1a1b4c087d

你可能感兴趣的:(创建一个基于docker的http应用(一))