docker 安装部署-yun

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 yum install -y docker-ce 
 yum list docker
 service docker start
 ps -ef|grep docker  
  docker version


docker-ce.repo源:
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

概念:

1)学习Docker企业应用之前,必须掌握Docker三个核心概念:

n 镜像

镜像中包含了各种应用程序、软件服务、数据等内容的模板文件,是静止、只读的,不能被修改,类似Linux系统ISO镜像文件,是用于启动Docker容器(轻量级的虚拟机)。

n 容器

基于镜像运行之后的实例,没有镜像就没有容器,容器是可读、可写的,容器启动之后一直需要底层镜像的,镜像文件不能删除的。容器所需的数据、文件可以从镜像模板中读取和调用,镜像是容器系统的底层基石。

n 仓库

仓库是用于存储Docker镜像(静态模板文件)的地方,仓库一般分为公共仓库、私有仓库,企业测试环境、生产环境推荐自建私有仓库,不推荐使用公共仓库(外网仓库)。 基于Docker虚拟化平台,启动一台Nginx WEB应用容器(轻量级的虚拟机),Nginx应用容器只包含Nginx软件服务,要求直接启动Nginx WEB服务,并且监听80端口,用户通过浏览器能够访问Nginx默认网站代码

简单操作

Run,全新创建一台容器;
-i,interactive交互模式;
-t,tty打开登陆终端;
-d,detach后台运行、启动;
-p,publish发布端口,将宿主机80(第一个)DNAT映射至容器的80;
docker search nginx
docker pull docker.io/nginx ll /var/lib/docker/imges/
docker images
docker images|grep nginx docler run -itd -p 80:80 nginx
docker ps
查看容器IP
docker ps|awk NR>1 '{print $1}'
for i in `docker ps|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|awk -F\" '{print $4}'|tail -1;done|sed 'N;s/\n/,/g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|tail -1;done|sed 'N;s/\n/ /g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"|tail -1;done|sed 'N;s/\n/,/g'
for i in `docker pa|awk NR>1 '{print $1}'`;do echo $i;docker inspect $i|grep -i ipaddr|sed 's/"//g;s/,//g;s/://g;s/IPAddress//g;s/ //g'|tail -1;done
docker inspect ddec2321112a|grep -i ipaddr|tail -1|sed 's/"//g;s/,//g;s/://g;s/IPAddress//g;s/ //g' 批量启动100容器
for i in `seq 0 99`;do docker run -itd -p 80$i:80 nginx;done 删除
docker rm -f ddec2321112a
for i in `docker ps|awk NR>1 '{print $1}`';do docker rm -f $i;done
导入镜像 先上传镜像
docker load < nginx.tar 进入容器
docker exec -it ddec2321112a /bin/bash
find / -name nginx.conf
docker cp ddec2321112a:/etc/nginx/nginx.conf ./
docker cp nginx.conf ddec2321112a:/etc/nginx/ wget www.baidu.com
docker cp index.html ddec2321112a:/usr/share/nginx/html/ 重启容器
docker restart ddec2321112a
 
基于Docker启动CentOS(Guest OS)容器
给docker加个速:vim /etc/docker/daemon.json 添加如下内容,然后重启docker服务

{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
]
}
搜索centos镜像
docker search centos
docker pull docker.io/ansible/centos7-ansible
docker images|grep centos
docker run -itd -p 6022:22 --privileged docker.io/jdeathe/centos-ssh docker ps 查看IP地址
docker inspect 430cf15e57d4|grep -i ipaddr|tail -1|awk -F\" '{print $4}'
docker inspect 430cf15e57d4|grep -i ipaddr|tail -1|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" docker虚拟机需要启动sshd服务:
docker exec -it 430cf15e57d4 /bin/bash
yum install openssh-server
rpm -qa|grep openssl
启动
/usr/sbin/sshd
可能会报错:(以下内容为虚拟机没有这三文件)
[root@507c1cad6814 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting. 解决方法:(退出虚拟容器,从宿主机拷贝进来即可)
[root@localhost ssh]# docker cp ssh_host_rsa_key 507c1cad6814:/etc/ssh/
[root@localhost ssh]# docker cp ssh_host_ecdsa_key 507c1cad6814:/etc/ssh/
[root@localhost ssh]# docker cp ssh_host_ed25519_key 507c1cad6814:/etc/ssh/ 重新进入容器:430cf15e57d4为IP
docker exec -it 430cf15e57d4 /bin/bash
/usr/sbin/sshd
ps -ef|grep ssh
netstat -nutlp
此时22端口以起来了,但是不知道密码,修改下为1,IP是宿主机IP,用户root
passwd
1
1

Docker镜像制作方法
#将一个容器导出成为一个tar包镜像(丢失容器内存中指令);
docker export c090c6b55449 > centos7-ssh-v1.tar (export会丢失某些内容)
docker save af209728ef8e >centos7-ssh.tar
#将centos7-ssh-v1.tar导入Docker镜像列表;
cat centos7-ssh-v1.tar|docker import - centos7-ssh-v1
#基于导入的centos7-ssh-v1创建新的虚拟机;
docker run -itd --privileged -p 6024:22 -p 83:80 centos7-ssh-v1
#让启动的CentOS虚拟机,能够在前台一直运行(永不退出);
docker run -itd --privileged -p 6024:22 -p 83:80 centos7-ssh-v1 /bin/bash
docker run -itd --privileged -p 6025:22 -p 84:80 centos7-ssh-v1 sleep 9999d

docker简单部署的更多相关文章

  1. Docker简单部署Ceph测试集群

    通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的;假设你只有一台机器,装了linux(如Ubuntu)系统和docker环境, ...

  2. Docker 简单部署 ElasticSearch

    https://www.cnblogs.com/jianxuanbing/p/9410800.html

  3. SpringBoot | 第十四章:基于Docker的简单部署

    前言 讲解了单元测试,本章节讲讲应用的部署吧.总体而言,在进行自动化部署时,基本都会用上Jenkins+Maven+Docker进行部署.本章节主要讲解使用Maven+Docker进行SpringBo ...

  4. 在Docker下部署Nginx

    在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...

  5. 使用docker安装部署Spark集群来训练CNN(含Python实例)

    使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...

  6. Docker简单介绍

    Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...

  7. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

  8. Docker安装部署redis

    借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...

  9. 私活利器,docker快速部署node.js应用

    http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...

  10. .net core 微服务架构-docker的部署-包括网关服务(Ocelot)+认证服务(IdentityServer4)+应用服务(asp.net core web api)

    本文主要介绍通过Docker来部署通过.Net Core开发的微服务架构,部署的微服务主要包括统一网关(使用Ocelot开发).统一认证(IdentityServer4).应用服务(asp.net c ...

随机推荐

  1. 【从0开始编写webserver·基础篇#03】TinyWeb源码阅读,还是得看看靠谱的项目

    [前言] 之前通过看书.看视频和博客拼凑了一个webserver,然后有一段时间没有继续整这个项目 现在在去看之前的代码,真的是相当之简陋,而且代码设计得很混乱,我认为没有必要继续在屎堆上修改了,于是 ...

  2. Vue基础介绍

    一.Vue基本介绍 1.Vue.js目前最火的的一个前端框架,三大主流前端框架之一.与其他重量级框架不同的是,Vue采用自底向上增量开发的设计.Vue的核心库只关注视图层. 2.Vue.js是一套构建 ...

  3. kubernetes(k8s):解决不在同一网段加入集群失败问题

    执行下面命令,将内外网进行映射. iptables -t nat -A OUTPUT -d 10.140.128.121 -j DNAT --to-destination 10.170.129.153 ...

  4. 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发

    基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发 项目简介:目标是开发一个跨平台的AI聊天和其他功能的客户端平台.目的来学习和了解Avalonia.将这个项目部署 ...

  5. vlunhub笔记(一)deathnote

    (一)查询靶机ip 通过 arp-scan -l 查询目标靶机ip,查询结果如下图红框所示. (二)信息收集 直接访问目标ip,发现无法访问,只返回网站域名. 网站返回域名,就将该域名添加进hosts ...

  6. sqli笔记

    MySQL数据库自带的数据库information_schema 里面有三个比较重要的表  SCHEMATA .TABLES . COLUMNS  保存数据库所有的数据库名 表名  字段名 SCHEM ...

  7. [nginx]借助nginx实现自动获取本机IP

    前言 在用脚本自动化部署应用时,有的应用需要指定本机IP,网上找到的方案大多是过滤ifconfig或者ip命令的结果,这里提供一种通过nginx获取本机ip的方法.大致思路为客户端向nginx发起请求 ...

  8. 重学HTTP:理解同源策略和CORS

    ​每次遇到跨域.代理.CORS这几个词都懵懵的,我决定一次把他们都搞明白,以后遇到他们再也不用害怕了. 一.什么是同源策略? 同源策略是在1995年由 Netscape公司引入到浏览器的,目前所有浏览 ...

  9. [碎碎念]和ljf老师聊天得到的一些启发,希望大家一起来吹水

    关于写这个小文 和ljf老师聊天得到的一些启发,希望能够总结出来方便回顾,并且我觉得这些想法有一定的普适性,可以供大家参考. 疑问 我的疑问是,我现在主要在做fuzz+pwn,能够进行漏洞挖掘,以及w ...

  10. C#程序变量统一管理例子 - 开源研究系列文章

    今天讲讲关于C#应用程序中使用到的变量的统一管理的代码例子. 我们知道,在C#里使用变量,除了private私有变量外,程序中使用到的公共变量就需要进行统一的存放和管理.这里笔者使用到的公共变量管理库 ...