有点早的笔记,记录于16年的 Docker 学习笔记,其中有些图片已经找不回来了
docker部署项目的优势
- docker容器很轻很快!容器的启动时间是秒级的,大量的节约开发、测试、部署时间。
- 内核级的虚拟化,可以实现更高的性能和效率。
- docker容器几乎可以在任意平台上运行,可以实现更轻松的迁移和扩展。
- 所有的修改都以增量的方式被分发和更新,可以实现自动化和更高效的管理。
docker安装
- 阿里云安装(配专属加速器)
- 普通安装 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 :
php-fpm :
nginx :
memcached :
https :
gearmand :
crond :
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 |