1. Docker Basic
安装docker(在/etc/selinux/config文件中设置selinux=disabled,否则安装时会报错)
curl -ssL http://get.docker.io/ | sh
 
启动docker,设置为开机启动
systemctl start docker
systemctl enable docker
 
ps: coreos-vagrant
 
docker有30个命令,可以用 man docker <command>查看各个命令的帮助文件
下面是一些常用命令:
docker pull 从一个仓库拉取镜像到另一个仓库(hello-world, busybox, alpine)
  eg. docker pull hello-world
docker images 列出本地仓库中的镜像
  eg.  docker images | grep he
docker run 启动容器  
  eg. docker run -it --rm --name first-con hello-world  用hello-world镜像创建名为first-con的容器,稍后删除该容器
  eg. docker run -it --name busybox busybox sh  用busybox镜像创建名为busybox的容器,并进入该容器
 
设置为忽略证书验证
vim /etc/systemd/system/multi-user.target.wants/docker.service文件中的以下位置,添加粗体字部分的参数
ExecStart=/usr/bin/docker daemon -H fd:// --insecure-registry 0.0.0.0/0
重新加载组件
systemctl daemon-reload
重启docker服务
systemctl restart docker
 
2. 使用Dockerfile构建image
按照当前目录下dockerfile文件中的命令,构建一个镜像,镜像名zcy/centos,tag7.2
docker build -t zcy/centos:7.2 .
docker build -t <repository>/<namespace>/<imagename>:<tag> -f <指定的dockerfile路径>
如果不显示的标明tag,tag默认设置为latest
 
3. 基于指定image创建并运行容器
使用image zcy/mariadb:5.5.47创建并运行容器,容器名mydb, -d是后台运行,-it是前台运行
docker run -d -p 3306:3306 --name mydb -e DB_USER=admin -e DB_USER=mypaas -e REMOTE_ADMIN=true -e REMOTE_ADMIN_USER=zcy -e REMOTE_ADMIN_PASS=zcypaas -v /mydata:/var/lib/mysql zcy/mariadb:5.5.47
 
docker run -d -p 80:80 --name worpdress -e WORDPRESS_DB_HOST=172.17.0.1 -e WORDPRESS_DB_USER=zcy -e WORDPRESS_DB_PASSWORD=zcypaas -v /data/logs:/var/logs/nginx zcy/wordpress:4.3
 
4. 创建docker register server
创建证书和密钥
openssl req -x509 -days 3650 -subj '/CN=reg.odt.com/' -nodes -newkey rsa:2048 -keyout domain.key -out domain.crt
 
docker run --entrypoint htpasswd registry:2.4.0 -Bbn zcy password > auth/htpasswd
 
docker run -d -p 8888:5000 --restart=always --name registry \
  -v `pwd`/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v `pwd`/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  -v /registry:/var/lib/registry \
  registry:2.4.0
1. 安装docker compose
curl -L https://github.com/docker/compose/releases/download/1.7.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
设置为可执行文件
chmod +x /usr/local/bin/docker-compose
Reference:
https://github.com/docker/compose/releases
 
2. Docker网络
NAT(bridge)
Host
Overlay
Contiainer
安装服务发现工具consul
 
3. Docker Swarm
Docker原生的集群, 调度策略,条件过滤
 
4. Docker存储
devicemapper 支持Cow(写时复写)
OverlayFS
Volume
VFS
XFS

Docker Day1 & 2的更多相关文章

  1. CentOS 8.4安装Docker

    前言: Docker 是一个用于开发.传送和运行应用程序的开放平台.Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件.使用 Docker,您可以像管理应用程序一样管理基础设施.通 ...

  2. Ubuntu 20.04安装Docker

    Docker学习系列文章 入门必备:十本你不容错过的Docker入门到精通书籍推荐 day1.全面的Docker快速入门教程 day2.CentOS 8.4安装Docker day3.Windows1 ...

  3. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  4. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  5. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  6. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  7. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  8. scrapy爬虫docker部署

    spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...

  9. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

随机推荐

  1. SqlServer阅读收集

    1.根据字段名,查找相关表--INFORMATION_SCHEMA.COLUMNS SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME ...

  2. Lua词汇约定

    Lua的标识符包含数字,字母以及下划线,数字不能作为标识符的开头. and break do else elseif end false for function goto if in local n ...

  3. 微信Android客户端架构演进之路

    这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...

  4. lvs的dr模式分析(二)

      #vim /etc/init.d/lvsdrrip #!/bin/bash #DR server VIP=192.168.46.200 case "$1" in start) ...

  5. JAVA 嵌套类和内部类

    一.什么是嵌套类及内部类?  可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:  静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类, ...

  6. VSFTP安装

    1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装, 使用yum? -y? install vsftpd 安装,(ubuntu 下使用apt-get insta ...

  7. spring mvc 用freemarker实现/user/edit?id=${id}=${type} 的替换

    java 中实现/user/edit?id=${id}=${type} 的替换; 引入包: freemark.jar  ,以及 类代码如下: public class FreeMarkerTextTe ...

  8. HTML meta 头部的一些内容

    <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable= ...

  9. NFinal中增加生成页面自动带入js和css

    增加在WebCompiler.aspx页面中的application.CreateCompile(true);方法里. //写aspx页面的自动提示层 #region 插入js&css com ...

  10. Katana

    - KAT101 - Katana has many nodes for operation, e.g. MaterialAssign, - The connections between nodes ...