docker简单部署
docker 安装部署-yun
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
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加个速: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

#将一个容器导出成为一个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简单部署的更多相关文章
- Docker简单部署Ceph测试集群
通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的;假设你只有一台机器,装了linux(如Ubuntu)系统和docker环境, ...
- Docker 简单部署 ElasticSearch
https://www.cnblogs.com/jianxuanbing/p/9410800.html
- SpringBoot | 第十四章:基于Docker的简单部署
前言 讲解了单元测试,本章节讲讲应用的部署吧.总体而言,在进行自动化部署时,基本都会用上Jenkins+Maven+Docker进行部署.本章节主要讲解使用Maven+Docker进行SpringBo ...
- 在Docker下部署Nginx
在Docker下部署Nginx 在Docker下部署Nginx,包括: 部署一个最简单的Nginx,可以通过80端口访问默认的网站 设置记录访问和错误日志的路径 设置静态网站的路径 通过proxy_p ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) http://blog.csdn.net/cyh_24/article/details/49683221 实验室有4台神服务器 ...
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- 从头认识一下docker-附带asp.net core程序的docker化部署
从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...
- Docker安装部署redis
借鉴博客:https://my.oschina.net/u/3489495/blog/1825335 待续... >>>>>>>>>docker安 ...
- 私活利器,docker快速部署node.js应用
http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...
- .net core 微服务架构-docker的部署-包括网关服务(Ocelot)+认证服务(IdentityServer4)+应用服务(asp.net core web api)
本文主要介绍通过Docker来部署通过.Net Core开发的微服务架构,部署的微服务主要包括统一网关(使用Ocelot开发).统一认证(IdentityServer4).应用服务(asp.net c ...
随机推荐
- 【从0开始编写webserver·基础篇#03】TinyWeb源码阅读,还是得看看靠谱的项目
[前言] 之前通过看书.看视频和博客拼凑了一个webserver,然后有一段时间没有继续整这个项目 现在在去看之前的代码,真的是相当之简陋,而且代码设计得很混乱,我认为没有必要继续在屎堆上修改了,于是 ...
- Vue基础介绍
一.Vue基本介绍 1.Vue.js目前最火的的一个前端框架,三大主流前端框架之一.与其他重量级框架不同的是,Vue采用自底向上增量开发的设计.Vue的核心库只关注视图层. 2.Vue.js是一套构建 ...
- kubernetes(k8s):解决不在同一网段加入集群失败问题
执行下面命令,将内外网进行映射. iptables -t nat -A OUTPUT -d 10.140.128.121 -j DNAT --to-destination 10.170.129.153 ...
- 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发
基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发 项目简介:目标是开发一个跨平台的AI聊天和其他功能的客户端平台.目的来学习和了解Avalonia.将这个项目部署 ...
- vlunhub笔记(一)deathnote
(一)查询靶机ip 通过 arp-scan -l 查询目标靶机ip,查询结果如下图红框所示. (二)信息收集 直接访问目标ip,发现无法访问,只返回网站域名. 网站返回域名,就将该域名添加进hosts ...
- sqli笔记
MySQL数据库自带的数据库information_schema 里面有三个比较重要的表 SCHEMATA .TABLES . COLUMNS 保存数据库所有的数据库名 表名 字段名 SCHEM ...
- [nginx]借助nginx实现自动获取本机IP
前言 在用脚本自动化部署应用时,有的应用需要指定本机IP,网上找到的方案大多是过滤ifconfig或者ip命令的结果,这里提供一种通过nginx获取本机ip的方法.大致思路为客户端向nginx发起请求 ...
- 重学HTTP:理解同源策略和CORS
每次遇到跨域.代理.CORS这几个词都懵懵的,我决定一次把他们都搞明白,以后遇到他们再也不用害怕了. 一.什么是同源策略? 同源策略是在1995年由 Netscape公司引入到浏览器的,目前所有浏览 ...
- [碎碎念]和ljf老师聊天得到的一些启发,希望大家一起来吹水
关于写这个小文 和ljf老师聊天得到的一些启发,希望能够总结出来方便回顾,并且我觉得这些想法有一定的普适性,可以供大家参考. 疑问 我的疑问是,我现在主要在做fuzz+pwn,能够进行漏洞挖掘,以及w ...
- C#程序变量统一管理例子 - 开源研究系列文章
今天讲讲关于C#应用程序中使用到的变量的统一管理的代码例子. 我们知道,在C#里使用变量,除了private私有变量外,程序中使用到的公共变量就需要进行统一的存放和管理.这里笔者使用到的公共变量管理库 ...