有点早的笔记,记录于16年的 Docker 学习笔记,其中有些图片已经找不回来了

docker-intro

docker部署项目的优势

  • docker容器很轻很快!容器的启动时间是秒级的,大量的节约开发、测试、部署时间。
  • 内核级的虚拟化,可以实现更高的性能和效率。
  • docker容器几乎可以在任意平台上运行,可以实现更轻松的迁移和扩展。
  • 所有的修改都以增量的方式被分发和更新,可以实现自动化和更高效的管理。

docker安装

  • 阿里云安装(配专属加速器)docke
  • 普通安装 yum or apt-get

docker镜像


细说command

  • docker pull ubuntu:12.04 hub 从仓库获取镜像
  • docker images 显示本地已有的镜像
  • docker commit -m ‘update ubuntu:12.04’ -a ‘Bob’ ubuntu:12.05 提交修改的镜像 生成新的镜像 版本是12.05
  • docker ps 列出本地正在运行的容器 -a 列出所有的容器包括历史、停止的。
docker run -ti -d -rm -p -v –name=lnmp:1.0 –restart=always /bin/bash
跑车开起来 终端可视化 后台执行 退出就删除 宿主机:容器内 宿主机挂载点:容器内挂载点 容器名 始终重启 使用bash_shell 启动容器

docker exec -ti CONTAINER ID /bin/bash 进入容器

docker rmi image_id docker rm container_id
删除镜像 删除容器
docker start container_id docker stop container_id
重新启动停止的容器 强行停止正在运行的容器
本地镜像导出 本地镜像导入 容器导出 容器导入
docker save -o name.tar ubuntu:14.04 docker load –input name.tar docker export container_id > name.tar cat name.tar
容器运行中端口指定 运行容器端口映射指定
iptables -t nat -I DOCKER ! -i docker0 -p tcp -m tcp –dport 宿主机port -j DNAT –to-destination 容器内IP地址:容器内port docker run -d -p 5000:5000 -p 3000:80 container_id /bin/bash
  • docker build -t name:1.0 . 使用Dockerfile构建镜像 . 当前目录

强大的 Dockerfile

Dockerfile的每一条指令都创建镜像的一层 一个镜像不能超过27层

FROM RUN EXPOSE CMD ENTRYPOINT COPY MAINTAINER
告诉docker使用哪个镜像作为基础 以此为开头的指令会在创建中运行 向外部开放端口 启动容器后运行的程序 执行 复制指定目录或文件到容器内 镜像构建者
FROM ubuntu:1.0 RUN apt-get update EXPOSE 80 443 CMD [“nginx”, “-g”, “daemon off;”] ENTRYPOINT /usr/local/startall.sh COPY startall.sh /usr/local/ MAINTAINER reallyli zlisreallyli@outlook.com

Dockerfile 相关的总结

redis :dockerfile_redisne

php-fpm :dockerfile_php

nginx : dockerfile_nginx

memcached : dockerfile_me

https : dockerfile_https

gearmand : dockerfile_gearman

crond : dockerfile_cron

docker容器内开启ssh服务

  • yum install passwd yum install openssh-server #安装ssh服务端 passwd 命令直接设置 登录密码
  • /etc/ssh/sshd_config #设置端口,注释不需要的设置,如:HostKey
dsa_key rsa_key ED25519_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key ssh-keygen -t dsa -f /etc/ssh/ssh_host_ED25519_key
防SSH_BRUTEFORCE攻击措施 RSA认证 开启公钥验证
1.修改Port 4484; 2.禁用root PermitRootLogin no RSAAuthentication yes PubkeyAuthentication yes

docker 理解

docker pdf