这篇主要讲现在主流的容器技术Docker,觉得不学习下都跟不上节奏了哈。 这里简单介绍docker的安装以及使用,有问题欢迎指出哈。


这里主要讲以下几点:

  • Docker 创建仓库
  • Docker 安装
  • Docker 镜像创建
  • Docker 制作镜像
  • Docker 上传镜像
  • Dockerfile

Docker 创建仓库

1.注册dockerhub账号,并新建仓库,地址:https://hub.docker.com/。

Docker 安装

1.这里以ubuntu环境为例子 方式1:

wget -qO- https://get.docker.com/ | sh

方式2:

apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" apt-get update //安装最新版本的docker apt-get install -y docker-ce

2.查看版本

docker version

Docker 拉取镜像

1.首先我们下载一个ubuntu镜像

docker pull ubuntu:16.04

  1. 运行镜像

docker run -t -i -p 3000:3000 ubuntu:16.04 /bin/bash

  -i 显示info级别log信息
  -t 显示控制台
  -p 3000:3000 把容器的3000端口映射到本机3000端口

3 .查看容器

//查看运行容器 docker ps //查看所有容器 docker ps -a

其中,正常exit会关闭容器退出,可以按Ctrl+P+Q暂时退出容器,但是不关闭容器。 也可以使用 docker exec -ti <container_id> 启动一个伪终端以交互式的方式进入某个容器 (使用exit退出后容器不停止运行)

4.启动容器

docker start <container_id>

5.进入容器

docker attach <container_id>

6,.停止容器

docker stop <container_id>


由于拉取的ubuntu是个比较纯净的,所以需要apt-get update,然后安装各种命令。 apt-get update apt-get install vim apt-get install net-tools # ifconfig apt-get install iputils-ping # ping ...

容器本身就被分配独立的IP,比如这里被分配的172.17.0.6。

我们可以在宿主机直接访问docker容器的内部Web服务了。

Docker 制作镜像

1.退出容器

docker stop <container_id>

2.查看容器

docker ps -a

3.把容器打成镜像

docker commit <container_id> <repository-name>[:<tag>]

4.查看镜像

docker images

Docker 上传镜像

1.登录

docker login

2.上传镜像

docker push <repository-name>[:<tag>]

此时在Docker仓库 搜索onebig32/zhao,就会看到我刚刚上传的镜像了 再次使用该镜像就可以直接docker pull onebig32/zhao:0.1 来使用了。

注意: 上传的用户仓库名称必须跟远程仓库一致,可以用docker tag来打标签

docker tag image_id username/库名:标签

DockerFile

当然部署还是需要DockerFile,有点像makefile,部署一步到位。 使用如下:

1.编写Dockerfile文件


FROM onebig32/zhao:0.1
# 基于镜像 ,拉取镜像,比如我刚才上传的镜像onebig32/zhao:0.1


MAINTAINER Aze <335424774@qq.com>
# 作者信息

RUN git clone https://github.com/onebig32/swoole.git \
    && cd ./swoole 
		
# RUN 执行命令

WORKDIR ./swoole 
# 设定初始目录


EXPOSE 3000
# 暴露3000端口


CMD go build .
# 运行 go build .命令,只会执行一条cmd命令

2.build该Dockerfile为一个镜像:

docker build --rm --no-cache=true -t docker-test .

  • -t 设定镜像名字 docker-test
  • --rm 如果已存在docker-testt镜像,则删除docker-test镜像
  • --no-cache=true build时,禁止缓存

3.运行镜像即可:

docker run -i -t -p 3000:3000 -d docker-test /bin/bash

参考文章

1.安装docker: https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html 2.docker教学:https://www.jianshu.com/p/81291d66740f 3.docker手册:https://yeasy.gitbooks.io/docker_practice/