`
jzy996492849
  • 浏览: 128134 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

docker学习(1) 安装

 
阅读更多
摘要: docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤: 一、mac/windows平台的安装 docker是在linux内核基础上发展而来的,无法直接运行在mac/windows上,需要借助docker-machine工具,先在mac/windows上建一个linux的虚拟机,然后才能继续玩下去。

docker是啥就不多讲了,简言之就是更轻量、更牛叉的新一代虚拟机技术。下面是安装步骤:

一、mac/windows平台的安装

docker是在linux内核基础上发展而来的,无法直接运行在mac/windows上,需要借助docker-machine工具,先在mac/windows上建一个linux的虚拟机,然后才能继续玩下去。默认内置的虚拟机引擎是Oracle的免费软件VirtualBox,可支持vmware fusion之类的商业软件。

1.1 下载docker toolbox

下载地址:http://www.docker.com/docker-toolbox ,toolbox已集成了docker-machine,docker client,virtualbox之插件,强烈建议在mac/windows上学习docker的同学用这种方式安装docker(注:虽然mac上也可以通过brew install 方式安装,但是没有图形界面,学习起来不方便)。

安装过程很简单,一路Next就可以了,唯一要注意的是最后一个界面:



docker toolbox提供了二种运行方式,终端命令行及图形界面,建议初学者选择图形界面,以降低学习难度。

进入后,会要求先创建一个docker hub的账号,注册账号完成邮箱验证后,就能进入了,docker hub上提供了大量的docker镜像文件(可以理解各种虚拟机的模板,不过建议翻~*墙,否则速度奇慢,甚至打不开),基本上可以满足各种要求,比如:需要一个持续集成的虚拟机,可以直接使用jenkins镜像,需要一个mysql,可以直接使用mysql镜像...



天朝的程序员估计是全世界幸福感最差的程序员,所有外国的好东西,要么不能用,要么龟速,docker hub下载巨慢,第1次接触慢慢等吧,后面会介绍如何使用国内daocloud的代理进行加速。

注:toolbox并没有提供卸载工具,如果出于某种原因需要卸载,可利用https://github.com/docker/toolbox/blob/master/osx/uninstall.sh 这个脚本完成,脚本内容如下:

#!/bin/bash

# Uninstall Script

if [ "${USER}" != "root" ]; then
echo "$0 must be run as root!"
exit 2
fi

while true; do
  read -p "Remove all Docker Machine VMs? (Y/N): " yn
  case $yn in
    [Yy]* ) docker-machine rm -f $(docker-machine ls -q); break;;
    [Nn]* ) break;;
    * ) echo "Please answer yes or no."; exit 1;;
  esac
done

echo "Removing Applications..."
rm -rf /Applications/Docker

echo "Removing docker binaries..."
rm -f /usr/local/bin/docker
rm -f /usr/local/bin/docker-machine
rm -r /usr/local/bin/docker-machine-driver*
rm -f /usr/local/bin/docker-compose

echo "Removing boot2docker.iso"
rm -rf /usr/local/share/boot2docker

echo "All Done!"
上面的脚本并没有删除virtualbox,如果连virtualbox也要卸载,自行到Application面板里,把virtualbox拖到垃圾箱里即可。  



1.2 下载镜像

先选一个小点儿的镜像感受下,比如:用kitematic/hello-world-nginx测试下nginx



点击New,搜索nginx就能找到,其文档地址为:https://hub.docker.com/r/kitematic/hello-world-nginx/,通过GUI界面下载的过程,等效于下面的命令:

docker pull kitematic/hello-world-nginx


1.3 一些常规操作

下图是KI的GUI界面,打红圈的地方可以直接操作,工具栏里的Start点击一下,把nginx容器运行起来



点击上图中"浏览nginx首页"的按钮,就可以直接在浏览器里看到nginx首页了,很方便吧!工具栏里的STOP/RESTART这些按钮看名字就知道用途了,不再啰嗦。

可以有同学注意到了,浏览器里的地址类似:http://192.168.99.100:32774,如果想知道为啥是这个IP及端口,可以看下Ports页,如下图:



上图的意思是,将docker容器中的80端口,映射到虚拟机的32774端口,那么问题来了,192.168.99.100又是哪里来的?



点击左下角的DOCKER CLI,就能进入docker终端,然后运行:

docker-machine ls 
会显示出当前创建的虚拟机(还记得本文最开头说的,mac上不能直接运行docker,必须先创建一个linux虚拟机吧),输出的default就是虚拟机的名字,然后再运行:

docker-machine ip default
就能看到virtual box给虚拟机default分配的IP.  继续,点击下图中的Exec,将进入nginx docker容器的bash命令行模式:



输入nginx -V查看配置文件的位置:



可以看出配置文件为/etc/nginx/nginx.conf,用cat命令查看一下:



从上图看,网站的根目录为/website_files,回到KI中,点击Volumns标签



可以看到实际是上把mac本机的~/Documents/Kitematic/hello-world-nginx/website_files 映射到docker容器实例中的/website_files,大家可以尝试把mac本机~/Documents/Kitematic/hello-world-nginx/website_files 中的index.html修改下,再刷新下浏览器中nginx页面,应该马上就能看到效果了。



1.4 docker 命令行的秘密

如果直接在mac本机打开一个终端,然后输入docker ps之类的命令,会提示

Cannot connect to the Docker daemon. Is the docker daemon running on this host?
但是从KI界面点击DOCKER CLI进入终端后,再输入docker ps,能正常显示正在运行的容器信息:



原因在于:通过KI进入终端后,会先执行

bash -c "clear && DOCKER_HOST=tcp://192.168.99.100:2376 DOCKER_CERT_PATH=/Users/yjmyzz/.docker/machine/machines/default DOCKER_TLS_VERIFY=1 /bin/zsh"
大家在docker CLI终端里,按一下向上的箭头就能发现这个秘密了,把这一行长长的命令换行整理一下,

bash -c "
clear &&
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_CERT_PATH=/Users/yjmyzz/.docker/machine/machines/default
DOCKER_TLS_VERIFY=1
/bin/zsh"
并没有什么特别之处,就是定义了几个bash变量而已,上面这一段不用死记,可以简化成:

docker-machine start default #启动虚拟机default,如果vm未启动的话,先执行这一行
docker-machine env default #获取default的环境变量
第二行执行完以后,会输出:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/yjmyzz/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env default)  
注意最后一行,按提示复制 eval $(docker-machine env default),然后执行一下,bash终端就有docker的上下文环境,然后执行docker ps之类的,就不会报错了。  

类似的,点击顶部工具栏上的EXEC,实际上等效于

bash -c "clear && DOCKER_HOST=tcp://192.168.99.100:2376 DOCKER_CERT_PATH=/Users/yjmyzz/.docker/machine/machines/default DOCKER_TLS_VERIFY=1 docker exec -it hello-world-nginx sh"
换行整理一下:

bash -c "
clear &&
DOCKER_HOST=tcp://192.168.99.100:2376
DOCKER_CERT_PATH=/Users/yjmyzz/.docker/machine/machines/default
DOCKER_TLS_VERIFY=1
docker exec -it hello-world-nginx sh"
只是多了最后一行,所以上面这一段相当于:

eval $(docker-machine env default)
docker exec -it hello-world-nginx sh


二、linux平台的安装(以centos为例)  

注意:centos要求7以上版本,低版本的内核docker不支持。

curl -sSL https://get.daocloud.io/docker | sh
sudo chkconfig docker on
sudo systemctl start docker
3行代码就搞定了,其中第1行,是从国内daocloud公司下载的,如果你想从官网下载,可以改成 sudo yum install docker  或 curl -sSL https://get.docker.com/ | sh, 安装完成后,执行:

sudo systemctl status docker
查看docker deamon状态,如果有active(running)字样输出,表示docker运行正常.



参考文章:

https://docs.docker.com/engine/installation/centos/
分享到:
评论

相关推荐

    centos下nvidia-docker2环境安装离线安装资料包

    NVIDIA-Docker2是专为在Docker容器内利用NVIDIA GPU进行计算设计的工具,它允许用户在GPU驱动支持的环境中运行计算密集型任务,如深度学习、机器学习或高性能计算。本离线安装资料包提供了在CentOS上安装NVIDIA-...

    ubuntu离线安装nvidia-docker2

    在Ubuntu系统中,离线安装`nvidia-docker2`是一项关键任务,特别是对于那些没有稳定网络连接或者希望在隔离环境中部署GPU加速的Docker容器的用户。`nvidia-docker2`是一个允许你在Docker容器中充分利用NVIDIA GPU...

    Docker学习笔记1

    Docker学习笔记Docker初识Docker是什么Docker的作用Docker的优点容器化与虚拟化Docker安装环境介绍安装步骤yum 包更新到最新如果

    docker离线安装rpm

    lxc-libs-1.0.11-1.el6.x86_64.rpm lxc-1.0.11-1.el6.x86_64.rpm lua-lxc-1.0.11-1.el6.x86_64.rpm lua-filesystem-1.4.2-1.el6.x86_64.rpm lua-alt-getopt-0.7.0-1.el6.noarch.rpm ...docker-ce-17.03.3.ce-1.el7.x8

    狂神 Docker学习笔记 超详细从开始到进阶到补充

    狂神 Docker 学习笔记 超详细从开始到进阶到补充 Docker 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的...

    Docker学习之CentOS 7安装配置

    Docker学习之CentOS 7安装配置 Docker 是一个开源工具,可以让创建和管理 Linux 容器变得简单。容器就像是轻量级的虚拟机,并且可以以毫秒级的速度来启动或停止。Docker 帮助系统管理员和程序员在容器中开发应用...

    Ubuntu20.04离线部署nvidia-docker

    NVIDIA Docker允许你在Docker容器内充分利用NVIDIA GPU的计算能力,这对于进行深度学习、机器学习以及其他依赖GPU的算法训练至关重要。下面将详细介绍如何在Ubuntu 20.04上进行这一过程。 首先,你需要获取NVIDIA ...

    DockerToolBox安装步骤.pptx

    1. **直接通过Docker-install.exe进行安装**:这种方式虽然可行,但由于下载不便且安装过程较为复杂,因此不推荐初学者使用。 2. **通过DockerToolBox.exe来安装Docker**:这是本文档将重点介绍的方式,因为它不仅...

    2021-12-011学习记录(docker安装)1

    在本节中,我们将学习 Docker 的安装过程和基本概念。Docker 是一个容器化平台,允许开发者在容器中打包、ship 和运行应用程序。下面是 Docker 安装和基本概念的知识点: Docker 安装 在CentOS 系统上安装 Docker ...

    docker学习手册,学习docker的宝典

    Docker学习手册 Docker是一种轻量级的操作系统虚拟化技术,能够让开发者快速搭建、测试和部署应用程序。下面是 Docker 学习手册的详细知识点: 第1章 Docker基础 ### 1.1 Docker简介 Docker是一种容器化技术,...

    nvidia-docker2.zip

    安装完成后,你就可以在Docker环境中充分利用NVIDIA GPU了,这对于运行深度学习、图形渲染或高性能计算等GPU密集型应用来说非常有用。 总的来说,nvidia-docker2提供了一个高效、方便的方式来在Docker容器中利用...

    docker学习和进阶2023.pdf

    docker学习和进阶2023 1.docker简介 2.docker安装 3.docker启动命令 4.docker镜像命令 5.docker容器 6.docker镜像 7.将镜像推送到阿里云 8.docker注册中心和仓库 9.docker存储管理 10.dockerFile 11.docker网络 12....

    实训1.安装docker.docx

    初步了解学习Docker

    docker离线rpm安装文件.tar.zip

    * 1、以下的rpm文件是有依赖,需要安装顺序进行执行. * 2、执行policycoreutils-python-2.5-29.el7.x86_64.rpm发现报 错误:依赖检测失败: policycoreutils = 2.5-22.el7 被 policycoreutils-python-2.5-22.el7.x86...

    达梦8版本学习docker版本镜像

    达梦8版本学习docker版本镜像

    docker 详情学习笔记

    学习 Docker 需要具备 Linux 基础,需要安装 Docker 需要的最小内核是 3.10 以上。 Docker 的应用场景包括: 1. 开发人员快速部署和调试应用。 2. 运维人员在隔离容器中并行运行和管理应用。 3. Serverless 应用。...

    学习docker和docker-compose,集成ClickHouse、Elasticsearch、Kafka、M.zip

    1. Docker:Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 提供了一种标准化的方法来创建、部署和运行...

    docker安装elk6.7.1-搜集java日志

    在本文中,我们将学习如何使用 Docker 安装 ELK 6.7.1,搜集 Java 日志。ELK(Elasticsearch、Logstash、Kibana)是一种流行的日志管理解决方案,广泛应用于大数据环境中。本文将详细介绍如何使用 Docker 安装 ELK ...

Global site tag (gtag.js) - Google Analytics