Docker学习笔记(一)

docker-tutorial (2018-7-1)

GitHub仓库

This repo is a translation of the docs.docker.com.

Also, you can check the English version here.

0. Docker CE 安装

环境:ubuntu 16.04

Docker官网上有在不同系统上的详细安装步骤和多种安装方法,如果有需要可以浏览here.

删除旧版本

如果安装了旧版本请删除他们:

$ sudo apt-get remove docker docekr-engine docker.io

使用apt安装

配置ubuntu repository

$ sudo apt-get update # 更新一下源

# 安装需要的软件使apt能够在HTTPS传输
$ sudo apt-get install apt-transport-https
$ sudo apt-get install ca-certificates
$ sudo apt-get install curl 
$ sudo apt-get install software-properties-common

添加docker官方GPG密钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

添加稳定版的repository

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

安装Docker CE

# 更新一下apt源
$ sudo apt-get update

# 安装最新版 Docker CE
$ sudo apt-get install docker-ce

测试Docker安装

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest

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

如果有权限问题是应为当前用户没有执行docker命令的权限,可以在命令前加sudo,或者把当前用户添加到docker用户组。

# 添加当前用户到docker组
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

执行完以上命令后登出在登入就完成了。

查看下载的镜像

$ docker image ls

查看容器,由于刚才运行的容器已经关闭了所以要添加参数才能看到

$ docker container ls -all

命令速记

# 查看Docker命令
$ docekr
$ docker container --help

# 查看Docker版本和安装信息
$ docker --version
$ docker version
$ docker info

# 运行Docker容器
$ docker run hello-world

# 查看已下载Docker镜像
$ docker image ls

# 查看Docker容器(运行中,所有,所有运行在quiet mode的)
$ docker container ls
$ docker container ls -all
$ docker container ls -aq

1. Orientation - 概述

Docker concepts - Docker概念

Docker是一个为开发者和运维提供开发、部署、运行容器化应用程序的框架平台。用Linux容器去部署应用程序这种方式被成为容器化(containerziation)。容器这个概念并不是新提出的,docker引入概念的是使用容器来使得部署应用更加简单。

Images and containers - 镜像和容器

一个容器(container)就是一个运行的镜像(image)。镜像(image)就是一个包含了需要运行的应用程序和他所需要的运行时环境、库、环境变量、配置文件等等。

容器(container)是一个镜像运行的实例,可以使用docker ps命令来查看系统中运行的容器。

容器和镜像的关系可以对比OOP(面向对象编程)中类和对象的关系。

Containers and virtual machines - 容器和虚拟机

容器和虚拟机实现的功能是相似的,但他们本质上是有差别的。

虚拟机是在现有的系统上,再运行一个操作系统,这可以很好的隔离主机和虚拟机,但带来的开销也是非常大的。

容器则可以从应用程序这个角度来理解。容器可以是一个包含了程序运行所需要的库和依赖的一个应用程序,简单来说就是把库和依赖关系集成到应用程序中,而不是使用系统的库和依赖,这样也能实现隔离的功能。所以容器的系统开销是非常小的。

总之,虚拟机是一个隔离的操作系统,而容器则是一个应用程序。

你可能感兴趣的:(Docker学习笔记(一))