1、docker安装
yum -y install bash-completion     #tab键补齐包
yum install net-tools -y
yum -y install wget
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
[root@docker ~]# yum install docker-ce -y     #安装Docker
[root@docker ~]# systemctl start docker.service
[root@docker ~]# vi /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
[root@docker ~]# docker info|version   #查看docker基本信息和版本
[root@docker ~]# docker search cenos   #搜索cenos的docker镜像
[root@docker ~]# vi /etc/docker/daemon.json   #配置docker镜像下载加速使用国内docker镜像源
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
[root@localhost ~]# systemctl restart docker.service   #配置完重启docker使配置生效

2、docker的容器管理
docker run -d -p 80:80 nginx
run(创建并运行一个容器)
-d 放在后台
-p 端口映射
-v 源地址(宿主机):目标地址(容器)
docker stop CONTAINER_ID   #停止容器
docker kill container_name   #杀死容器
[root@docker ~]# docker pull centos:6.8   #下载docker镜像(不指定版本,默认会下载最新版)
[root@docker ~]# docker images   #查看已下载的docker镜像
[root@docker ~]# docker run -it centos:6.8 /bin/bash   #启动一个容器,不指定容器名docker将随机分配一个容器名
[root@docker ~]# docker run -it --name centos_sshd centos:6.8 /bin/bash   #启动一个容器并指定容器名为centos_sshd
[root@docker ~]# docker ps -a   #查看docker容器状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eaf08454395c centos:6.8 "/bin/bash" 2 minutes ago Up 2 minutes centos6.8
[root@docker ~]# docker inspect centos_sshd|eaf08454395c   #查看容器的配置信息
[root@docker ~]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' centos_sshd   #查看容器IP
[root@docker ~]# docker exec -it centos6.8|eaf08454395c /bin/bash   #进入容器(指定容器名和容器id都可以)
[root@docker ~]# docker attach centos6.8|eaf08454395c /bin/bash   #进入容器(使用同一个终端)
ctrl + p再按ctrl + q退出容器并返回宿主机
[root@docker ~]# docker rm -f eaf08454395c   #删除一个容器
[root@docker ~]# docker rm -f `docker ps -a -q`   #批量删除容器
注意:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

3、制作容器镜像
[root@aa30c84f20b9 /]# yum install openssh-server -y
[root@aa30c84f20b9 /]# yum install httpd -y
[root@aa30c84f20b9 /]# /etc/init.d/sshd start    #初始化ssh服务并生成密钥对,否则不能ssh连接
[root@localhost ~]# docker commit aa30c84f20b9 centos_sshd_httpd:v1    #制作一个容器镜像
sha256:e8ea675ba1d002de5019d743281c052130c17cc9feedda4ab839b9bf262847e2
[root@docker ~]# docker commit --help
Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
容器id或容器名 新的镜像名字[:版本号可选]
[root@6f15becdbbd2 /]# cat init.sh
#!/bin/bash
echo "123456"|passwd --stdin root
/etc/init.d/httpd start
/usr/sbin/sshd -D
[root@docker ~]# docker run -d -p 80:80 -p 1022:22 --name centos_sshd_httpd centos_sshd_httpd:v1 /init.sh   #通过脚本同时启动容器中的多个服务
-d:放在后台运行
-p:端口映射(宿主机端口:容器的端口,--name:设置容器名)
[root@docker ~]# docker save centos_sshd_httpd >centos_ssh_httpd.tar.gz    #保存容器镜像
[root@docker ~]# docker image rm -f centos_sshd_httpd       #删除镜像
[root@docker ~]# docker image load -i centos_ssh_httpd.tar.gz      #导入镜像
0f0fd98df580: Loading layer [==================================================>] 128.6MB/128.6MB
Loaded image: centos_sshd_httpd:v1

4、dockerfile自动构建docker镜像
dockerfile主要组成部分:
基础镜像信息 FROM:centos:6.8
制作镜像操作指令 RUN yum install openssh-server -y
容器启动时执行指令 CMD ["/bin/bash"]
dockerfile常用指令:
FROM 这个镜像的妈妈是谁?(指定基础镜像)
LABEL 告诉别人,谁负责养它?(指定维护者信息,可以没有)
RUN 你想让它干啥(在命令前面加上RUN即可)
ADD 给它点创业资金(复制文件,会自动解压)
WORKDIR 我是cd,今天刚化了妆(设置当前工作目录)
VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录)
EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口)
CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换)
使用ADD的时候,ADD init.sh /init.sh(init.sh文件必须放在Dockerfile同级目录下!!!)
dockerfile其他指令:
COPY 复制文件 (复制文件,不会自动解压)
ENV 环境变量
ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)

[root@docker dockerfile]# vi Dockerfile
FROM centos:6.8
RUN yum install openssh-server -y
RUN /etc/init.d/sshd start
RUN yum install httpd -y
ADD init.sh /init.sh
CMD ["/bin/bash","/init.sh"]
[root@docker dockerfile]# vi init.sh
#!/bin/bash
/etc/init.d/httpd start
echo "123456"|passwd --stdin root
/usr/sbin/sshd -D
[root@docker dockerfile]# ll
total 8
-rw-r--r--. 1 root root 152 Mar 20 10:27 Dockerfile
-rw-r--r--. 1 root root 91 Mar 20 11:02 init.sh
[root@docker ~]# docker build -t centos_sshd_httpd:v2 .    #利用Dockfile文件创建镜像,. 表示Dockerfile文件在当前目录
---> d4ba7df51af6
Step 3/6 : RUN /etc/init.d/sshd start
---> Running in 547cad2caecc
Generating SSH2 RSA host key: [ OK ]
Generating SSH1 RSA host key: [ OK ]
Generating SSH2 DSA host key: [ OK ]
Starting sshd: [ OK ]
Removing intermediate container 547cad2caecc
---> a3815ee38b0c
[root@docker ~]# docker run -d -p 80:80 -p 1022:22 --name centos_dockerfile centos_sshd_httpd:v2
[root@docker dockerfile]# vi init.sh     #设置root密码从环境变量中读入
#!/bin/bash
/etc/init.d/httpd start
echo "$password"|passwd --stdin root
/usr/sbin/sshd -D
[root@docker ~]# docker run -d -p 81:80 -p 2022:22 --name centos_docker -e password=test123 centos_sshd_httpd:v2   #设置root密码为test123
注意:
用Dockerfile文件创建的镜像不能从宿主机ssh登陆,否则会有以下错误
[root@docker dockerfile]# ssh 10.47.39.100 -p 1022
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:HoZcYKgbOtzM70y2uPURVaSkKaqPZNd6lG5GQjAjorU.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending RSA key in /root/.ssh/known_hosts:3
RSA host key for [10.47.39.100]:1022 has changed and you have requested strict checking.
Host key verification failed.
[root@docker ~]# docker run -d -p 80:80 -p 1022:22 -h Nginx -e password=test123 --name centos6.8 centos_sshd_httpd:v2   #-h:指定主机名;--name:指定容器名

5、docker-compose(单机版的容器编排工具)
yum install -y python2-pip(需要epel源)
pip install docker-compose
##docker-compose配置文件详解
http://www.jianshu.com/p/2217cfed29d7

cd my_wordpress/
vi docker-compose.yml
version: '3'

services:
db:
image: mysql:5.7
volumes:
- /oldboy:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
#启动
docker-compose up
#后台启动
docker-compose up -d

6、重启docker服务,容器全部退出的解决办法
方法一:docker run --restart=always
方法二:"live-restore": true
docker server配置文件/etc/docker/daemon.json参考
{
"registry-mirrors": ["http://b7a9017d.m.daocloud.io"],
"insecure-registries":["10.0.0.11:5000"],
"live-restore": true
}

docker + k8s的博客文章
http://www.cnblogs.com/CloudMan6/p/6693772.html
https://github.com/feiskyer/kubernetes-handbook/blob/master/zh/SUMMARY.md
https://github.com/feiskyer/kubernetes-handbook
k8s安装方法:
go源码编译安装
二进制安装 (比较适合)
yum 安装 1.5 (比较适合)
kubeadm(容器化部署,)
minikube(学习k8s)

docker学习链接:
第一篇:
http://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html
第二篇:
http://www.cnblogs.com/zhenyuyaodidiao/p/6500720.html
第三篇:
http://www.cnblogs.com/zhenyuyaodidiao/p/6500897.html
第四篇:
https://www.cnblogs.com/breezey/p/6553738.html
第五篇:
http://www.cnblogs.com/breezey/p/6556913.html

Docker入门(CentOS7)的更多相关文章

  1. Centos7——docker入门(笔记)

    docker 入门(笔记) 一.Docker是什么? 官方原话: Docker provides a way to run applications securely isolated in a co ...

  2. Docker(一):Docker入门教程

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

  3. 实用的Docker入门

    1 Docker概述 Docker和虚拟机一样,都拥有环境隔离的能力,但它比虚拟机更加轻量级,可以使资源更大化地得到应用.首先来看Docker的架构图: 理解其中几个概念: Client(Docker ...

  4. Docker入门(三)使用Docker Compose

    Compose介绍   Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 ...

  5. 这可能是最为详细的Docker入门吐血总结

    这可能是最为详细的Docker入门吐血总结  https://www.cnblogs.com/ECJTUACM-873284962/p/9789130.html Docker是什么? 在计算机技术日新 ...

  6. 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World

    操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service doc ...

  7. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  8. 【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker

    Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布 ...

  9. Docker(一):Docker入门教程

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

随机推荐

  1. C++的STL之map自动排序特性

    #include <iostream> #include <map> using namespace std; int main() {方法一: map<int,int& ...

  2. Python 必备好库 - 好工具收藏

    apscheduler collections collections.OrderDict collections.defaultdict Python 标准库提供了 collections 模块.这 ...

  3. upc组队赛1 流连人间的苏苏

    流连人间的苏苏 题目描述 苏苏在做红尘仙的任务时,发现坐落于风景秀丽.四季如春的昆明市的云南中医学院. 没过多久,苏苏就喜欢上了这个学校.以致于苏苏忘了回涂山的时间,现在她只剩下d天的时间待在云南中医 ...

  4. Git学习笔记--- diff工具 kdiff3

    图形化的git diff 与 git merge工具:kdiff3 1.安装 win10: 去官网左边找到Download,下载双击安装. Linux(Debian Ubuntu 18.04): ap ...

  5. OAuth2.0原理与实现

    弄懂了原理流程,才可以搭建出来.更重要的是,可以根据原理流程自定义搭建,甚至可以完全自己实现一套,最后运行效果和原理和这个对得上就成功了,不要总期待标准答案! 首先参考两篇博客: 阮一峰的博客以及张开 ...

  6. pip运行错误

    错误: [root@centos64 numpy-1.13.1]# pip install numpy-1.13.1-cp27-cp27m-manylinux1_x86_64.whl Tracebac ...

  7. P2257 YY的GCD(莫比乌斯反演)

    第一次做莫比乌斯反演,推式子真是快乐的很啊(棒读) 前置 若函数\(F(n)\)和\(f(d)\)存在以下关系 \[ F(n)=\sum_{n|d}f(d) \] 则可以推出 \[ f(n)=\sum ...

  8. CF983B XOR-pyramid

    设\(xorx[l][r]\)表示题目中\(f(l,r)\)的值,则可以得出 \[ xorx[i][j]=xorx[i][j-1] \oplus xorx[i+1][j] \] 设\(maxx[l][ ...

  9. [蓝桥] 历届试题 错误票据 (List用法,空格处理)

    时间限制:1.0s 内存限制:256.0MB 问题描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为工作人 ...

  10. 【BZOJ 5125】小Q的书架

    Problem Description 小 \(Q\) 有 \(n\) 本书,每本书有一个独一无二的编号,现在它们正零乱地在地上排成了一排. 小 \(Q\) 希望把这一排书分成恰好 \(k\) 段,使 ...