Docker的安装与使用介绍
docker是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
为什么要用docker?
在没有用docker之前,我们需要在本地,测试,线上部署相同的环境,相同的软件每个环境都要安装一次,并且每来一个新同事,相同的环境有要重新安装一遍,很麻烦且过于重复。docker可以完美的解决这个问题
用docker之后我们只需要在本地,测试,线上分别安装相同的docker,然后在本地搭建环境,将搭建好的环境容器生成docker镜像,只要将这个docker镜像提供给测试和线上即可构建出相同的环境,在代码部署上我们可以利用docker数据卷将本地项目目录文件直接挂载到测试环境中
docker在win7上的安装
我们在官网上看到docker不能在win7上直接安装,需要通过docker toolbox来安装
Requires Microsoft Windows 10 Professional or Enterprise 64-bit. For previous versions get Docker Toolbox.
so,根据官网的介绍我们可以在这里https://docs.docker.com/toolbox/overview/直接点击Get Docker Toolbox for Windows
按钮直接下载,如果下载慢的话可以在https://get.daocloud.io/toolbox/下载,我选择DockerToolbox-18.09.1.exe 这个版本。下载完后可直接双击安装
安装的过程中需要选择安装哪些组件,这里由于我本机已经安装了git和virtual box,所以就不选了,没安装的建议全选

安装完后桌面上多出docker和kitematic两个快捷方式
双击Docker Quickstart Terminal,由于我们没有一起安装git,因此弹出需要我们指定用哪个bash.exe,这里我们选择本机安装的Git/bin/bash.exe文件,等一段时间后安装完成,出现如下界面

执行docker-machine ssh default即可登录上镜像
这里docker启用默认的镜像,ip为192.168.99.100,我们可以通过xshell登陆上此服务器
default镜像默认的用户名是docker密码是tcuser
至此docker在win7上安装完成,
docker在win7上的优化
虚拟机的默认存储位置是C:\Users\Administrator.docker\machine\machines ,后期docke镜像文件会不断增加,为了给系统盘减负,最好将磁盘移动到其他位置。
- 在终端中执行docker-machine stop default命令停止default虚拟机
- 通过VirtualBox【管理】->【虚拟介质管理】界面对虚拟磁盘进行复制
更改镜像仓库地址
docker默认的镜像仓库地址是https://hub.docker.com/,但国内的下载速度太过缓慢,最好使用国内镜像,
参考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox设置镜像加速
docker在mac上的安装
在docker官网上我们可以直接下载Docker Desktop (Mac) 可直接在https://hub.docker.com/editions/community/docker-ce-desktop-mac下载(需要登录),下载后双击执行docker.dmg正常安装即可
启动docker后在系统菜单栏我们可以看到docker标志,说明docker安装成功
docker镜像加速
参考http://guide.daocloud.io/dcs/daocloud-9153151.html#docker-toolbox设置镜像加速

docker基本命令
// 列出本地已有镜像
docker images
// 从远端下载镜像
docker pull <image name>
// 使用镜像创建并启动一个容器(若本地没有该镜像,则会先从远端下载,每次run都会生成一个容器,嗯,轻量~)
docker run hub.c.163.com/library/hello-world:latest
//列出正在运行的容器
docker ps
// 列出所有容器(包括Exited)
docker ps -a
// 启动指定的容器
docker start <container id>
// 停止指定的容器
docker stop <container id>
// 停止所有运行中的容器
docker stop $(docker ps -q)
// 删除指定容器
docker rm <container id>
//删除所有容器
docker rm $(docker ps -aq)
//停止并删除容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
// 删除指定镜像(删除镜像前须先停止并删除容器)
docker rmi <image id>
// 重启容器
docker restart <container id>
// 创建一个新的容器并运行一个命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
// 交互运行
docker run -it centos /bin/bash
/bin/bash 是进入到linux中命令行
// 进入容器
docker exec -it centos /bin/bash
// 容器拷贝到主机
docker cp <container id>:文件路径 主机目标路径
// 主机拷贝到容器
docker cp 主机文件路径 <container id>:文件路径
//查看容器IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' centos
win7上文件以数据卷的形式挂载到docker容器中
1.先设置 win7 到 VirtualBox 中 docker 用的那个虚拟机的共享文件夹
填写好共享文件夹路径和名称。如:共享文件夹路径:E:\ 共享文件夹名称: e
然后勾选自动挂载和固定分配
2.重启 docker
3. docker run -it -v /test:/var/www myimage /bin/bash
制作镜像
在上面的镜像容器中我们可以搭建自己所需要的各种环境,搭建好后可将这个更改后的容器打包成一个镜像,并上传到镜像仓库供大家使用
在搭建好环境的容器中退出时我们应当使用ctrl+p+q快捷键,而不是exit退出,因为这样直接退出会关闭当前容器
docker commit :从容器创建一个新的镜像。
docker commit -a "name" -m "this is profile" <container id> imageName
这里以阿里云为例,将镜像推送到Registry
$ sudo docker login --username=jesse131 registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[镜像版本号]
从网上拉取上传的镜像
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/mirror-study/study:[镜像版本号]
如果不想通过网络拉去镜像也可以通过U盘拷贝镜像
导出镜像到本地
docker save <container id> -o d:/www/centos.tar
加载本地镜像
docker load -i d:/www/centos.tar
Docker的安装与使用介绍的更多相关文章
- docker 安装及使用介绍
docker 安装及使用用介绍 安装docker所依赖的基础环境 1 64 bits CPU 2 Linux Kernel 3.10+ //如果低于则需要手动给内核打补丁.因为分层构建联合挂载系统得在 ...
- Docker Centos安装Redis以及问题处理
之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建r ...
- Docker Centos安装Mysql5.6
之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...
- docker 的安装
官方站点上有各种环境下的 安装指南,这里主要介绍下Ubuntu和CentOS系列的安装. Ubuntu 系列安装 Docker 通过系统自带包安装 Ubuntu 14.04 版本号系统中已经自带了 D ...
- docker 17 安装
docker17 安装 新增一键安装命令: curl -sSL https://get.docker.com/ | sh 以下为手动安装过程 翻译自 Get Docker for Ubuntu Doc ...
- Docker Register安装与基本认证
准备 基本事项 Docker环境 登录授权方式 镜像存放地址 HTTPS外网访问 启动Docker Registry 1. 基本事项 本篇涉及到的数据文件都放在/data目录下, 其中会有三个子目录 ...
- Docker简介/安装/使用
什么是Docker?docker是一个开源的应用容器引擎,系统级的轻量虚拟化技术.应用程序的自动化部署解决方案,能够迅速创建一个容器,并在容器上部署和运行应用程序,并通过配置文件可以轻松实现应用程序的 ...
- Docker的安装和测试
1,Docker安装 Docker是啥,以及其与虚拟机的对比,就不介绍了,网上有很多资源可以学习和了解. 本篇文章重点介绍Docker的安装和测试使用. Docker的安装,分为离线安装和在线安装两种 ...
- 在centos,docker中安装HeadlessChrome
在centos6中安装chrome与chrome-driver,中间走了很多弯路,遇到很多坑,现将详细步骤总结如下.参考博客链接:https://blog.csdn.net/u013849486/ar ...
随机推荐
- Kubernetes 中的核心组件与基本对象概述
Kubernetes 是 Google 基于 Borg 开源的容器编排调度,用于管理容器集群自动化部署.扩容以及运维的开源平台.作为云原生计算基金会 CNCF(Cloud Native Computi ...
- mysql 开发进阶篇系列 12 锁问题(隔离级别下锁的差异)
1. innodb在不同隔离级别下的一致性读及锁的差异 不同的隔离级别下,innodb处理sql 时采用的一致性读策略和需要的锁是不同的,同时,数据恢复和复制机制的特点,也对一些sql的一致性读策略和 ...
- [Web安全之实战] 跨站脚本攻击XSS
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1. 认识XSS 2. ...
- 13 Tensorflow机制(翻译)
代码: tensorflow/examples/tutorials/mnist/ 本文的目的是来展示如何使用Tensorflow训练和评估手写数字识别问题.本文的观众是那些对使用Tensorflow进 ...
- MODIS数据的下载(新地址)
Modis数据下载方法 1.1打开网址 浏览器输入地址:https://ladsweb.nascom.nasa.gov/search 注:需要一定的等待时间,如果一直打不开,就需要FQ.(网址加载了g ...
- [机器学习]回归--(Simple LR and Multiple LR)
线性回归是最贴近生活的数据模型之一 简单的线性回归 简单的线性回归公式如下: 从公式中我们可以看出,简单线性回归只有一个自变量x1,b1是自变量的系数,y是因变量.x1可能是连续型或者离散型的数据,所 ...
- #19 re&jieba模块
前言 在Python中,需要对字符串进行大量的操作,有时需要从一个字符串中提取到特定的信息,用切片肯定是不行的,所有这一节记录两个强大的文本处理模块,一个是正则表达式re模块,另一个是中文处理模块ji ...
- wget命令的几个常用选项和示例
wget命令用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕.如果是服务器打断下 ...
- Linux命令-用户及权限管理
一.权限管理linux系统中对文件权限的描述机制: u g od r w x r w x r - x (r读,w写,x执行)文件 所有者 所属组 其他人可以表示为二进制: 111 111 101也可以 ...
- [转]用virtualBox安装centos设置网络和通信
本文转自:https://blog.csdn.net/hsl_1990_08_15/article/details/51644451 具体的安装和在VM Ware中安装的方式大同小异 安装好后我们设置 ...