Docker入门实践
Docker是一门很成熟的容器技术,类似虚拟机技术主要用做环境的隔离,方便环境的复制镜像,虚拟机是基于操作系统这一层的,而Docker更加的轻量级,像是“应用”层级的。比如我需要一个MySQL环境、一个Nginx环境、一个netcore运行环境等等。
有两个非常重要的概念要搞明白
镜像Images:做好的环境,存储在仓库,有点像SVN/Git,有点像你做好的一个系统盘,它存的就是环境,比如一个nginx的镜像。
容器Containers:一个镜像在本机上的运行实例就是一个容器,可以运行多个容器。比如我从远端pull一个nginx的镜像,然后在本机运行这个nginx,这就是形成了一个容器。
这两个之间的关系就像类与实例化之后的对象一样。

现在好多软件都提供Docker形式的分发了,镜像的查找可以登录https://hub.docker.com/查找。需要什么环境,直接pull到本机,然后run运行,非常方便,不用在本机安装环境了。可以把自己配置好的环境提交成一个镜像,然后在用的地方直接pull and run, 这样就不用担心环境不一致的问题了,非常方便复制且环境一致。
下面我以CentOS 7.2为例,运行一个nginx的容器。
# 更换源为国内
cd /etc/yun.repos.d
ls
mv CentOS-Base.repo CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CenOS7-Base-163.repo
yum makecache
yum -y update # 安装 (通过官方sh脚本)
wget https://get.docker.com
mv index.html docker.sh
sh docker.sh
# 当前登录用户
sudo usermod -aG docker root # 启动停止,和普通服务一样
service docker start # 查看信息
docker info
docker version # -------------
# 概念,要特别理解熟悉镜像(images)和容器(container)
# images就像远程服务器SVN上的代码(其实是程序环境,比如centOS,nginx,netcore....),可以拉下来编译运行
# container就是本机运行一个images产生的环境 # 常用命令,不知道的,--help查看 # 镜像操作
docker images
# https://hub.docker.com
docker search xxx
docker pull xxx
docker rmi xxx # 容器操作
docker run xxxxx
docker rm xxx
docker start xxx
docker stop xxx docker attach xxx
docker exec -t -i xxx /bin/bash docker run xxx yum install soft docker cp xxx:/container_path ospath # 进阶 > 提交
docker容器运行后,通常是后台运行的,怎么进入容器查看运行情况呢,有下面几个办法
# 直接在外面查看容器运行的日志
docker logs xxx # 进到容器且显示当前运行的程序的终端
# 退出时按Ctrl+P+Q,一般有点卡,这个界面是只读的,没法交互
docker attach xxxx # 进到容器里,可以bash交互的
docker exec -t -i b2d28b4aa923 /bin/bash
使用docker exec进入容器后,就像ssh进入一个Linux环境一样,完全可以控制系统了,比如查看文件路径,打开一个文件等等。在机器与容器之间copy文件是一个常见的场景,但是,容器里的文件结果是怎么样的,一个文件放在那个路径下怎么知道,这时用docker exe就很方便了。比如我运行一个nginx的容器,我需要把网站的文件copy进去,但我不知道应该容器里网站文件应该放在什么地方,可以这样做。进入容器后,注意看系统提示都变了,然后我就可以查找nginx网站的路径,退出时exit退到机器

# 把一个文件copy到容器nginx网站路径下
docker cp my.html b2d28b4aa923:/user/share/nginx/html/my.html # 也可以反过来copy
docker cp xxx:/user/file /root/file # 容器里的文件路径为 容器ID或名称:容器里的路径
参考:https://yeasy.gitbooks.io/docker_practice/content/container/run.html
Docker入门实践的更多相关文章
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...
- 这是一次 docker 入门实践
前言 其实接触 docker 也有一段时间了,但是一直没有做下总结,现在网上关于 docker 的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧. 实现目标 安装 docker ce ...
- Docker 入门实践
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法 ...
- Docker入门实践(三) 基本操作
Docker安装完毕.我们就能够试着来执行一些命令了.看看docker能够干什么. (一) 创建一个容器 首先.让我们执行一个最简单的容器,hello-world.假设安装没有问题.并执行正确的话,应 ...
- 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...
- 微服务 + Docker + Kubernetes 入门实践 目录
微服务 + Docker + Kubernetes 入门实践: 微服务概念 微服务的一些基本概念 环境准备 Ubuntu & Docker 本文主要讲解在 Ubuntu 上安装和配置 Dock ...
- Docker 入门教程与实践
title: Docker 入门教程与实践 tags: Docker ---- 在Windows上安装Docker客户端 1.下载Docker TollBox: https://docs.docker ...
- 《Docker 入门与实践》 已经出版了~欢迎有须要的朋友关注。
在云计算时代.开发人员将应用转移到云上已经攻克了硬件管理的问题,然而软件配置和管理相关的问题依旧存在. Docker的出现正好能帮助软件开发人员开阔思路.尝试新的软件管理方法来解决问题. 通过掌握Do ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
随机推荐
- linux下执行.sh文件的方法和语法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh ...
- Vagrant 管理部署 VirtualBox (推荐使用)
学习一段时间的大数据和容器技术,使用虚拟机搭建实验环境还是挺耗时耗力的. 一旦虚拟机坏掉了,还要重新开始. 最近发现了Vagrant, 简直好用上天,方便快捷,易用. 下面介绍如何在Windows中安 ...
- iOS app启动流程
最近看了些Runtime Runloop的一些知识.边看边摸索.看到群里有人在问 一些面试题.其中就提到了app的启动流程. 所以这里也研究小结一下,以供自己学习备用. 1.项目要运行,就要有入口. ...
- python数据结构之选择排序
选择排序(select_sort)是一个基础排序,它主要通过查找已给序列中的元素的最大或者最小元素,然后将其放在序列的起始位置或者结束位置,并通过多次这样的循环完成对已知序列的排序,在我们对n个元素进 ...
- WPFToolkit DataGrid 使用介绍zz
首先:这版本需要.NetFrameWork SP1的支持 WPF Toolkit - February 2010 Release 下载地址:http://wpf.codeplex.com/rele ...
- 2017-9-17-Windows Live Writer常用快捷键
Window Live Writer常用的快捷键: 将当前文章发布到博客:CTRL+SHIFT+P 打开新文章: CTRL+N 将草稿保存到计算机上: CTRL+S 切换到"普通" ...
- 05 树莓派安装飞鸽传书 Iptux
2017-08-22 14:47:06 进入页面:https://packages.debian.org/search?keywords=iptux 选择“stretch (stable) ”—— ...
- BZOJ2828 : 火柴游戏
设$f[i][j][k]$表示考虑了前$i$个数字,增加了$j$根火柴,删掉了$k$根火柴是否可能,用bitset加速DP. 然后设$g[i][j]$表示增加了$i$根火柴,删掉了$j$根火柴的最小代 ...
- 资源从3ds max导入UE4问题
1.先删掉灯光和相机.材质命名为英文,贴图也要英文取名,不能有中文,并且必须是JPG格式.并整理好组:删掉多余的物体,例如线2.坐标归零.并把材质转换为默认材质3.选中一个组,先unground,然后 ...
- react-navigation 中的多tabs嵌套时内部tabs无法正常切换问题
原因 问题应该是当用户滑动或切换时,无法判断是哪个tabs应该进行滑动切换和展示切换动画. 解决 swipeEnabled - 是否允许在标签之间进行滑动 animationEnabled - 是否在 ...