自己很少使用Docker,也没有机会使用,毕业开始工作后,进的公司使用Docker进行部署,这是我的一些笔记,以便翻阅。

1.准备

系统:ubuntu16.04 or centos …

1.1.安装

1.1.1.ubuntu16.04

首先安装依赖包,在终端输入:

1
2
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates

安装Docker,自动安装脚本提供了非常简洁的安装方式:

1
2
3
4
5
6
7
8
9
# 官方下载方式
curl -sSL https://get.docker.com/ | sh

# 镜像站会提升下载速度
# 阿里云的安装脚本
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

# DaoCloud 的安装脚本
curl -sSL https://get.daocloud.io/docker | sh

安装完成后,输入sudo service docker status 可见Docker已经启动:

1
2
3
4
5
6
7
8
9
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since 二 2017-08-15 15:34:46 CST; 26min ago
     Docs: https://docs.docker.com
 Main PID: 16890 (dockerd)
    Tasks: 25
   Memory: 60.1M
      CPU: 1.980s
   CGroup: /system.slice/docker.service
1.1.2.centos7

完全可以参照上面的自动安装

1.2.镜像加速器

配置镜像加速器的目的是为了在使用Docker的过程中能提升速度,比如使用DaoCloud 加速器,输入网址,点击立即使用,按照官网的教程,一行命令搞定:

1
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://{修改分配给你的id}.m.daocloud.io

2.使用

下面将简单的获取一个镜像并输出一个Hello World来简单演示下Docker的使用,首先介绍下Docker的三个基本概念,掌握了这三个基本概念,也就理解了Docker的生命周期

什么是镜像(Image)?

引用《第一本Docker书》

镜像是构建Docker世界的基石,用户基于镜像来运行自己的容器,镜像是基于联合(Union)文件系统的一种层式,由一系列指令一步一步构建出来

什么是容器(Container)?

容器基于镜像启动,里面可以运行一个或者多个进程

什么是仓库(Repository)?

想象下github就很容易理解,托管你自己创建的镜像,默认使用Docker Hub

2.1.Hello World

运行一条命令 docker run hello-world,会发现并没有运行成功,因为我是在非root的情况下运行的,会报如下错误:

1
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/create: dial unix /var/run/docker.sock: connect: permission denied.

至于为什么有这个错误,具体可以看这里,介绍得非常清楚,下面说下解决办法:

1
2
# 一定要重新登录才会生效
sudo usermod -aG docker $USER

用户重新登陆过后,就能成功运行了!

2.2.简单例子

获取镜像:

docker pull howie6879/cn_ubuntu,这条命令就是从Docker Hub拉取一个镜像到本地,下面就可以使用这个镜像了,运行:

docker run howie6879/cn_ubuntu:latest /bin/echo "Hello World

终端就会输出Hello World

3.最后

参考1:《Docker-从入门到实践》

参考2:《第一本Docker书》

gist看这里

图片来自网络