关于Docker 不得不看的上手指南

简介:

如果你对Docker有所了解,并且正准备开始使用Docker容器引擎,那么你一定不要错过这篇文章。我们会从Docker容器、镜像和库三个方面详细向你展开介绍。

首先你要知道,Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。


先来看看下面这张工作流程图中,可以帮助你更好的理解Docker的工作模式。

接下来,你要知道关于Docker容器的三项基本内容

·Docker容器这是Docker容器运行的一个简单的虚拟机。

·Docker镜像:这类似于你在虚拟机上运行的ISO映像,但这是一个高度精简的版本。窗机中所有多余的安装包和文库都已经被删除。

·Docker库:这是一个Docker镜像快照,可以启动、停止、修改或发布的另一个镜像。

Docker容器

官方下载之后你就可以在PC端使用你的Docker了,为防止它不慎丢失,你可以用Docker窗口命令再创建一个默认Docker备用。使用命令为:docker-machinecreatedefault.

注:你可以自己设定磁盘的大小和存储容量,同样通过上述命令,用指定专用交换机来执行。如果你要做一些数据方面的工作,我强烈建议你设定磁盘分区。你也可以用不同的配置安装多个Docker窗口备用。检查窗机使用的命令为:docker-machinels.

这里是输出样例:

 
 
  1. NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS 
  2. default   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.04.0-ce 


开始使用Docker,你当然得使用开始命令,然后你可能会跳过输入窗口名称这一步,如果有默认名称的话,不然的话,你还得拟定一个名称。

要查看你的Docker窗口工作状态,你可以输入状态指令,例如"running"或者"stopped"。

另外需要注意的是,你要确保你的主机操作系统适应所有的Docker窗口的环境变量。Docker-machineenv命令是获得运行脚本的一个方便的方式,可以用来设置环境变量。

 
 
  1. SET DOCKER_TLS_VERIFY=1 
  2. SET DOCKER_HOST=tcp://192.168.99.100:2376 
  3. SET DOCKER_CERT_PATH=C:\Users\kushukla\.docker\machine\machines\default 
  4. SET DOCKER_MACHINE_NAME=default 
  5. SET COMPOSE_CONVERT_WINDOWS_PATHS=true 
  6. REM Run this command to configure your shell: 
  7. REM @FOR /f "tokens=*" %i IN ('docker-machine env') DO @%i 


只需要复制粘贴上面的命令到终端,或者命令提示符,再或者按照备注设置环境变量。

 Docker镜像

关于Docker容器我们先说这么多,现在我们来看看Docker镜像在容器上的运行。如果你已经了解"库",那么你就可以通过dockerpullrocker/rstudio命令来下载图像,如果你不知道选什么图像,你可以到Docker中心(类似于Git中心);这是一个docker图库,你可以在那里挑选镜像并开始工作。

好,下面我们用run命令安装下一个部分,run和pull类似,都可以检查图像是否已经下载到本地,如果不把图从图库取出,那么就要打开一个新的容器来使用图片。

dockerrun-p8888:8888--nametensorflow-itgcr.io/tensorflow/udacity-assignments:1.0.0

以上参数基本上用于自定义容器。它标识着地图的港口,容器的名称和一个互动虚拟控制台。如果这个命令锁定了你的终端,这意味着你的终端stdin,stdout和stderr连接到现在运行的容器。

通过docker images命令,你可以查看下载在你个人电脑上不同的图片。

 
 
  1. REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE 
  2. rocker/rstudio                          latest              7a807646f0be        11 days ago         993MB 
  3. gcr.io/tensorflow/udacity-assignments   1.0.0               4e01459e7150        2 months ago     


Docker图像可以定义图片ID或者上表中的库。所以,删除图片时,你可以使用这个命令:dockerrmi7a807646f0be

Docker库

Docker镜像本质上是静态的,容器可以启动/停止来做实际工作。容器使用的是另一个Docker镜像,你可以运行下面的指令来检查你的电脑上有什么容器。

dockerps-a

 
 
  1. CONTAINER ID        IMAGE    COMMAND     CREATED      STATUS      PORTS      NAMES 
  2. 21d0cdc5051d        gcr.io/tensorflow/udacity-assignments:1.0.0   "/run_jupyter.sh"   15 minutes ag 


如果删掉开关,则只能看到当前正在运行的容器。在我们的例子中,那只是RStudio容器。

那么,你可以停止一个容器,用这个指令来实现:docker stopr studio

要开始一个容器,你可以用这个:docker startr studio

而我通常会这样写:dockerrun-d-p8787:8787-v/c/Users/kushukla:/home/rstudio/kushukla--namerstudiorocker/rstudio

这是因为我想打开8787,同时连接我容器系统的本地字典,这样一来,我的R密码在该容器中就可以访问了。如果你想知道接下来发生了什么,我可以去浏览器打开RStudio,IP是在特定变量环境和端口下,在Docker中运行的。


好了,我的分享暂告一段落,希望能对你有所帮助!




作者:刘妮娜译
来源:51CTO
目录
相关文章
|
安全 Linux Docker
极速上手使用Docker,这篇文章就够了!
Docker是一个提供集中式平台来执行应用程序的软件。它将软件包装成一个完整的标准化单元,其中包含所有要运行的内容。无论是代码,运行时环境,工具还是程序库。它保证软件能始终按预期那样运行...
97 0
|
25天前
|
Docker 容器
进入Docker容器中
进入Docker容器中
34 2
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1月前
|
Oracle 关系型数据库 数据库
|
4天前
|
存储 运维 监控
构建高效稳定的Docker容器监控体系
【4月更文挑战第18天】 在现代微服务架构中,Docker容器已成为部署和运行应用的标准环境。随之而来的挑战是如何有效监控这些容器的性能与健康状况,确保系统的稳定性和可靠性。本文将探讨构建一个高效稳定的Docker容器监控体系的关键技术和方法,包括日志管理、性能指标收集以及异常检测机制,旨在为运维人员提供实用的指导和建议。
10 0
|
13天前
|
Linux Docker 容器
docker 容器常用命令
docker 容器常用命令
12 0
|
13天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
20 0
|
13天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
24 0
|
22天前
|
Kubernetes 网络协议 Docker
Docker 容器的DNS
Docker 容器的DNS
25 1
|
24天前
|
关系型数据库 MySQL Nacos
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
【深入浅出Nacos原理及调优】「实战开发专题」采用Docker容器进行部署和搭建Nacos服务以及“坑点”
46 1