一、 Docker的部署与安装

1.安装docker和相关依赖性

[root@server1 docker]# ls
container-selinux-2.21-1.el7.noarch.rpm
docker-ce-18.06.1.ce-3.el7.x86_64.rpm
libsemanage-2.5-8.el7.x86_64.rpm
libsemanage-python-2.5-8.el7.x86_64.rpm
pigz-2.3.4-1.el7.x86_64.rpm
policycoreutils-2.5-17.1.el7.x86_64.rpm
policycoreutils-python-2.5-17.1.el7.x86_64.rpm
[root@server1 docker]# yum install -y *

2.打开docker服务

[root@server1 ~]# systemctl start docker.service


3.在安装好docker后,系统会为docker容器分配一个ip,利用ip addr中查看docker0的ip

这个IP是为了容器通信用的,具体后面再说

4. 查看docker的版本信息

[root@server1 ~]# docker version


5. docker宿主机的信息

[root@server1 ~]# docker info

二、docker常用的基础命令

# docker load -i ubuntu.tar  导入镜像
# docker run -it --name vm1 ubuntu    创建容器(以ubuntu镜像为模板)
# docker ps  查看容器状态
# docker ps -a   查看容器状态(包括不活跃的容器)
# docker attach vm1   连接容器
# docker top vm1   查看容器进程
# docker logs vm1 查看容器指令输出 -f 参数可以实时查看
# docker inspect vm1 查看容器详情
# docker stats vm1 查看容器资源使用率
# docker diff vm1 查看容器修改
# docker stop vm1 停止容器
# docker start vm1 启动容器
# docker kill vm1 强制干掉容器
# docker restart vm1 重启容器
# docker pause/unpause vm1  暂停/恢复容器
# docker rm vm1  删除容器

三、镜像的导入和容器的使用

实例一:简单搭建一个2048小游戏

1.导入镜像game2048.tar

[root@server1 ~]# docker load -i game2048.tar

2.查看镜像信息

[root@server1 ~]# docker images

3.创建容器vm1,并运行

[root@server1 ~]# docker run -d -p 80:80 --name vm1 game2048

上面命令的功能为创建名为【vm1】的容器;并将本机80端口映射到容器的80端口,通过本机80端口访问容器内部;运行容器并打入后台

参数 功能
-d 打入后台
-p 端口映射
- -name 指定容器的名字

这里特别要提到docker的端口映射。

我们使用以下命令可以看到在创建容器时有很多的参数,其中关于端口的参数有【-p】与【-P】

[root@server1 ~]# docker run --help

当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-P参数来指定端口映射。

当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放的网络端口(端口范围在Linux系统使用的端口之外,一般都过万)

当使用-p(小写p)可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。
支持的格式有:IP:HostPort:ContainerPort | IP::ContainerPort | HostPort:ContainerPort 。

4.查看容器运行状态

[root@server1 ~]# docker ps

5.查看容器信息

[root@server1 ~]# docker inspect vm1

6.浏览器访问

172.25.6.1(本机IP,因为我们做了端口映射,所以只需访问本机的80端口即可到达容器vm1内部)

2048游戏就这样轻松上线,其实当我们执行完【docker run】命令以后就已经完成了上线,后续的操作也只是为了查看相关信息而已;这样看来,我们上线一个应用就只用了两步,非常方便,这也是为什么如今docker这么火爆的原因

实例二:快速搭建nginx

1.导入镜像,并创建容器vm1

[root@server1 ~]# docker load  -i nginx.tar

[root@server1 ~]# docker run -d --name vm2 -p 8080:80 nginx
##因为本机80端口已经被2048游戏占用,所以我们指定8080端口

[root@server1 ~]# docker ps -a

3.测试

http://172.25.6.1:8080/

4. 编写一个默认发布页面,并cp到容器内部

[root@server1 ~]# ls
game2048.tar  nginx.tar
[root@server1 ~]# vim index.html
[root@server1 ~]# cat index.html
<h1/>hello world<h1/>
[root@server1 ~]#
[root@server1 ~]# docker cp index.html vm2:/usr/share/nginx/html

5.也可以直接挂载本机目录到容器里

删除之前的容器vm2

[root@server1 ~]# docker rm -f vm2
[root@server1 ~]# mkdir /tmp/docker     ##创建挂载目录

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径;当然也可以指定挂载目录的权限

docker run -d -p 8080:80 --name vm2 -v /tmp/docker/:/usr/share/nginx/html/ nginx
docker run -d -p 8080:80 --name vm2 -v /tmp/docker/:/usr/share/nginx/html/:ro nginx

在挂载目录里编辑发布内容

[root@server1 ~]# cd /tmp/docker/
[root@server1 docker]# ls
[root@server1 docker]#
[root@server1 docker]# vim index.html
[root@server1 docker]# cat index.html
<h1/>snow snow snow<h1/>

实例三:利用docker创建一个交互式容器

1.导入ubuntu镜像

[root@server1 ~]# docker load -i ubuntu.tar

2.生成并运行容器

[root@server1 ~]# docker run -it --name vm3 ubuntu
##创建一个vm3的镜像,-it表示打开交互式docker界面(ubuntu自带,rhel镜像需要在后面再加bash)


容器vm3的内核版本与宿主机的内核版本一致

root@b179b778d2cf:/# uname -r
3.10.0-514.el7.x86_64
[root@server1 ~]# uname -r
3.10.0-514.el7.x86_64


命令补充:

ctrl + pq   ##退出容器但不关闭容器
[root@server1 ~]# docker attach vm3        ##进入容器ctrl + D ##退出并关闭容器,下次登陆时需要开启
[root@server1 ~]# docker start vm3     ##打开关闭的容器docker rm vm3              删除容器
docker rm -f  vm2           强制删除容器
docker rmi ubuntu:vm3       删除镜像

Docker学习(3)——安装部署过程及简单应用相关推荐

  1. #gStore-weekly | Centos7系统下gStore在 docker上的安装部署

    本人在使用gStore时想在docker环境中安装部署,但是官网的开发文档中关于docker安装部署指导很少,因此本人就根据自己的安装经验编写一篇关于gStore在docker上的安装部署博文. 本人 ...

  2. ubuntu16.4安装部署过程

    以下是ubuntu16.4安装部署过程,之前每次安装都要去找半天过程,所以自己整理了一下. 有的人可能没有这一步,无妨,继续向下 这是在给你自动配置一些东西,如果你想手动自己配置,可以选择中断,下面的 ...

  3. 在使用ambari进行安装部署过程中遇到的glibc问题

    在使用ambari进行安装部署过程中遇到的glibc问题 使用 yum check rpm -e rpm -q 处理问题 报错信息如下: stderr: Traceback (most recent ...

  4. 免费开源的客服系统 Linux 服务器环境安装部署过程

    最近因为项目需要,要找一款在线客服系统集成在 APP 中使用,而且涉及到生意开单,客服系统必须稳定可靠.另外甲方要求,必须支持 Linux 服务器环境. 我们以 Ubuntu 18.04 为例把安装部 ...

  5. FFmpeg入门详解之127:GB28181平台安装部署过程 - 可接入海康、大华、华为、科达、宇视等等设备和平台

    本文章向大家介绍GB28181平台安装部署过程 - 可接入海康.大华.华为.科达.宇视等等设备和平台,主要包括GB28181平台安装部署过程 - 可接入海康.大华.华为.科达.宇视等等设备和平台使用实 ...

  6. Docker之registry安装部署

    Docker之registry安装部署 我说了您可能就不会继续看registry了,但是我还是要说,这个东东真不好用,不如harbor(强烈推荐). 1.安装docker --此处省略-- 2.拉取r ...

  7. Docker概述和安装部署

    概述 Docker产生的背景 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后 ...

  8. Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用

    MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服 ...

  9. Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程

    Docker selenium自动化 - 环境部署与 Python 自动化运行实战演示 第一章:docker selenium 环境部署 ① 下载 selenium 镜像 ② 容器 selenium ...

最新文章

  1. 怎么查看这个历史最大连接session数
  2. Spring MVC中数据绑定流程和原理
  3. 关于Android adb实现框架和应用
  4. python pip 报错 Command “python setup.py egg_info“ failed with error code 1 解决方法
  5. Jmeter之HTTP Request Defaults
  6. DropDownList的常用属性和事件
  7. 找出所有层级_数轴上的行程问题1:你的数学思维水平在哪一个层级?
  8. python virtualenv
  9. windows下安装php5.5的redis扩展
  10. 数据结构排序系列详解之六 树形选择排序
  11. windows常用端口对应表
  12. excel两列数据对比找不同_Excel跨工作簿数据符合条件项、提取、批量复制、对比...
  13. java程序员推荐记笔记_推荐一款开源免费的笔记软件,也是程序员的好帮手
  14. 我的测试图片vr(后前-上下-左右)
  15. 背诵考研英语单词计划总览
  16. 【测试开发】的Devops持续集成部署体系之Jenkins持续集成和持续部署基础应用
  17. [转]雷雨天防雷要点
  18. 博客园技术系列文章目录
  19. 脚本调试sh -x xx.sh、set -x
  20. 163邮箱申请注册条件,邮件注册申请,邮箱的格式怎么写?

热门文章

  1. R语言dplyr包arrage函数排序dataframe实战:单列排序、多列排序、自定义排序
  2. R构建列联表(Contingency Table or crosstabs)
  3. 基于TF-IDF编码进行文本聚类分析:文档成对相似性计算、层次聚类(链接矩阵、树形图dendrogram绘制、聚类标签)
  4. 自定义服务器怎么调98k,《刺激战场》如何开自定义房间?升级可领房卡,3倍物资98k随便捡...
  5. java 行为模式_java – 模式匹配行为
  6. Single Molecule Real-Time Sequencing
  7. 生物信息学、系统生物学 期刊 会议
  8. 测序技术及常见的有几种平台类型
  9. python笔记4(矩阵和随机数 matplotlib绘图基础散点图折线图柱状图)
  10. python 类变量、实例变量、参数、实例方法、类方法、静态方法 的用法和区别