Docker: 将重复的事情简单化,避免相同的工作重复做。缩短代码从开发、测试到部署、上线运行的周期,让我们的应用程序具备可移植性、易于构建、并易于协作。

1. Docker介绍

  • Docker 是一个开源的软件部署解决方案。
  • Docker 也是轻量级的应用容器框架。
  • Docker 可以打包、发布、运行任何的应用。
  • Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。
  • Docker 是一个客户端-服务端(C/S)架构程序。

其中包含三个重要概念:

  • 镜像(Image)   【程序打包的文件,将重复的工作进行封装】

类似于虚拟机中的镜像,是一个独立的系统,包含运行容器的所有程序,同时也可以创建新的容器。例如,一个镜像可以是一个Ubantu系统,然后这个系统中可以有诸多软件。

  • 容器(Container)   【运行镜像的】

类似于一个VM虚拟机,可以启动、运行等。每个容器之间都是相互隔离的。

  • 仓库(Repository)   【存放镜像的】

类似于Github,用于镜像托管的。

2. Docker安装(ubuntu 18.04)

2.1.源码安装Docker CE

cd docker源码目录
sudo apt-key add gpg
sudo dpkg -i docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb

先把文件上传到虚拟机中。

2.2.检查Docker CE是否安装正确

sudo docker run hello-world

出现如下信息,表示安装成功.  【此镜像非常小,只有几KB】

2.3.启动与停止

  • 安装完成Docker后,默认已经启动了docker服务。
# 启动docker
sudo service docker start
# 重启docker
sudo service docker restart
# 停止docker
sudo service docker stop

3. Docker镜像操作

3.1.镜像列表

sudo docker image ls

* REPOSITORY:镜像所在的仓库名称
* TAG:镜像标签
* IMAGEID:镜像ID
* CREATED:镜像的创建日期(不是获取该镜像的日期)
* SIZE:镜像大小

3.2.从仓库拉取镜像

# 官方镜像
sudo docker image pull 镜像名称 或者 sudo docker image pull library/镜像名称
sudo docker image pull ubuntu 或者 sudo docker image pull library/ubuntu
sudo docker image pull ubuntu:16.04 或者 sudo docker image pull library/ubuntu:16.04# 个人镜像
sudo docker image pull 仓库名称/镜像名称
sudo docker image pull itcast/fastdfs

3.3.删除镜像

sudo docker image rm 镜像名或镜像ID
sudo docker image rm hello-world
sudo docker image rm fce289e99eb9

【删除的前提是:这个对象没有创建容器。镜像正在运行时是不能删除的】

4. Docker容器操作

4.1.容器列表

# 查看正在运行的容器
sudo docker container ls
# 查看所有的容器
sudo docker container ls --all

4.2.创建容器

sudo docker run [option] 镜像名 [向启动容器中传入的命令]
常用可选参数说明:
* -i 表示以《交互模式》运行容器。
* -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
* --name 为创建的容器命名。
* -v 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
* -d 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
* -p 表示端口映射,即宿主机端口:容器中端口。
* --network=host 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。  【访问数据库时会用到】

4.3.交互式容器

sudo docker run -it --name=ubuntu1 ubuntu /bin/bash

在容器中可以随意执行linux命令,就是一个ubuntu的环境。
当执行 exit 命令退出时,该容器随之停止。

4.4.守护式容器

# 开启守护式容器
sudo docker run -dit --name=ubuntu2 ubuntu

# 进入到容器内部交互环境
sudo docker exec -it 容器名或容器id 进入后执行的第一个命令
sudo docker exec -it ubuntu2 /bin/bash

如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。
在容器内部执行 exit 命令退出时,该容器也随之停止。退出后仍在后台运行着

4.5.停止和启动容器

# 停止容器
sudo docker container stop 容器名或容器id
# kill掉容器      【如果stop不管用的话,则直接用kill】
sudo docker container kill 容器名或容器id
# 启动容器
sudo docker container start 容器名或容器id

4.6.删除容器

  • 正在运行的容器无法直接删除。停止的镜像可以删除掉
sudo docker container rm 容器名或容器id

4.7.容器制作成镜像

  • 为保证已经配置完成的环境可以重复利用,可以将容器制作成镜像。
# 将容器制作成镜像
sudo docker commit 容器名 镜像名

# 镜像打包备份
sudo docker save -o 保存的文件名 镜像名

【只有打包后才能发送】

# 镜像解压
sudo docker load -i 文件路径/备份文件

容器化方案Docker的使用方法相关推荐

  1. 虚拟化 VS 容器化(docker)

    虚拟化 VS 容器化(docker) 以 Docker 为代表的容器技术一度被认为是虚拟化技术的替代品,然而这两种技术之间并不是不可调和的.作者分别列举了容器技术以及虚拟化技术的优缺点,并提出将两者结 ...

  2. 【云原生】第十篇--Docker主机集群化方案 Docker Swarm

    Docker主机集群化方案 Docker Swarm 一.docker swarm介绍 二.docker swarm概念与架构 2.1 架构 2.2 概念 三.docker swarm集群部署 3.1 ...

  3. docker.10-Docker主机集群化方案 Docker Swarm

    Docker主机集群化方案 Docker Swarm 一.docker swarm介绍 Docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个 ...

  4. docker部署机器学习/深度学习模型的容器化方案

    文章目录 什么是docker docker的优点 docker image镜像 Dockerfile 文件 Dockerfile配置例子 创建docker镜像 docker container 容器 ...

  5. Linux 容器化技术详解(虚拟化、容器化、Docker)

    虚拟化是过去用来充分利用物理资源的最常用方法.早年间,我们可以用一台服务器运行一个操作系统,处理一个任务,带来的问题是资源利用率极其不足,计算机的潜能并不能完全发挥,而后多道批处理系统.分时系统相继出 ...

  6. docker启动sqlserver_ASP.NET Core容器化技术Docker零基础从入门到实战演练

    <ASP.NET Core使用Docker进行容器化托管部署> 一.课程介绍 人生苦短,我用.NET Core!今天给大家分享一下Asp.Net Core以Docker进行容器化部署托管, ...

  7. python容器开发_python学习之容器化管理docker

    Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英文: Virtualization)是一种资源管理技术,是将计算机的各种实体资源(如: 服 务器.网络.内存及存储等)予以抽象.转化后呈现 ...

  8. Java架构师-容器化(一):服务容器化技术-Docker、Cloud Foundry

    一.服务容器化概述 1.应用的种类太多,码头林立 2.微服务 3.康威定律 二.容器技术对比:Docker 与 Cloud Foundry 三.Docker能做什么 四.Docker Client/S ...

  9. 一篇文章搞懂最流行的容器化技术Docker

    说在前面的话 本篇文章什么样的人适合看? 刚入门学习docker的,看完对docker会有一个通篇的认识 有经验的人,在知识大爆炸时代,技术很多,没有人能记住所有东西,适合复盘的时候看 我想说的话:这 ...

最新文章

  1. python解析AMF协议
  2. python—多线程之数据混乱问题
  3. NGUI UIRoot原理分析
  4. 时间序列分类算法简介及其在能耗数据分类上的应用
  5. jQuery的Autocomplete插件的远程url取json数据的问题
  6. oracle需求分析,8-oracle_分析函数(二)
  7. 将MYSQL查询导出到文件
  8. Linux虚拟化KVM-Qemu分析(五)之内存虚拟化
  9. html5有本地存储吗,HTML5的本地存储
  10. 蓝牙模块耳机做蓝牙透传_WiFi、蓝牙在工业领域的数据透传应用_SKYLAB 无线模块...
  11. win7一直显示正在关机_windows8.1和windows7哪个好_win8.1好还是win7好用
  12. Spark StructType 类型详解
  13. 【laravel VS lumen】
  14. 做个轻松省力的父母的几个原则
  15. C语言scanf中%%,C语言scanf()和gets()及printf()和puts()的区别
  16. 阿里百万架构师打造的 Java并发编程实战笔记,理论到实践一键吃透
  17. 微信开发者工具使用bug
  18. 少儿编程市场调研分析
  19. MySQL高可用之PXC详解
  20. 安兔兔html5 test,opporeno5pro跑分多少?安兔兔和鲁大师跑分成绩测试

热门文章

  1. 赠书 | JavaScript 武力值飙升!用 TensorFlow.js 轻松在浏览器里搞深度学习
  2. 人工智能进军餐饮:AI调酒,越喝越有
  3. 百度SLG拿下前锤子科技CTO钱晨,还要合并小鱼在家? | 极客头条
  4. 完整代码+实操!手把手教你操作Faster R-CNN和Mask R-CNN
  5. 李彦宏首次公布24字百度愿景,要做最懂用户的公司
  6. 那个曾经为美国NASA开发火星大脑的AI公司,现在和华为合作了
  7. 李飞飞下半年或将从 Google离职?李飞飞回应
  8. 苹果智能音箱HomePod确定开售时间,权威人士质疑:是否太晚?
  9. 一口气说出 Redis 16 个常见使用场景
  10. 字节一面:如何从 100 亿 URL 中找出相同的 URL?