Docker 学习笔记
来源:互联网 发布:什么叫对冲基金 知乎 编辑:程序博客网 时间:2024/06/02 03:08
Docker install
一、 Docker 安装要求
- 64位操作系统
- 最好是3.8以上内核
二、 Cent OS 6.5 默认内核为 2.6
1. 升级内核
a) 先执行以下命令
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpmyum -y --enablerepo=elrepo-kernel install kernel-lt
b) 修改配置文件
vim /etc/grub.conf // 将 default=1 修改为 default=0
c) reboot 重启电脑
重启后如果不出意外的话,再次查看内核,您的 CentOS 内核将会显示为 3.10
恭喜您!下面我们就一起来安装 Docker 了
附: uname -r 可以查看当前系统内核版本
三、安装 Docker
1. 通过以下命令即可安装 Docker 软件
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmyum -y install docker-io
2. 通过以下命令查看 Docker 是否安装成功
docker version // 若输出了 Docker 的版本号,则说明安装成功了
3. 可通过以下命令启动 Docker 服务
service docker start // Docker 服务启动完毕,我们就可以使用 Docker 了
4. 好像丢掉了一句,到后边会报错
yum upgrade device-mapper-libs
四、下载 Docker 镜像
1. 官网网址: https://www.docker.com/
五、Docker的使用
1. 测试镜像
docker run -i -t centos:6 /bin/bash
常用 docker 命令
1、docker -h 帮助2、获取镜像 sudo docker pull NAME[:TAG] sudo docker pull centos:latest3、启动Container盒子 sudo docker run [OPTIONS] IMAGE [COMMAND] [ARG...] sudo docker run -t -i contos /bin/bash4、查看镜像列表,列出本地的所有images sudo docker images [OPTIONS] [NAME] sudo docker images centos5、查看容器列表,可看到我们创建过的所有container sudo docker ps [OPTIONS] sudo docker ps -a6、删除镜像,从本地删除一个已经下载的镜像 sudo docker rmi IMAGE [IMAGE...] sudo docker rmi centos:latest7、移除一个或多个容器实例 sudo docker rm [OPTIONS] CONTAINER [CONTAINER...]8、移除所有未运行的容器 sudo docker rm sudo docker ps -aq9、停止一个正在运行的容器 sudo docker kill [OPTIONS] CONTAINER [CONTAINNER...] sudo docker kill 026e10、重启一个正在运行的容器 sudo docker restart [OPTIONS] contains[CONTAINER] sudo docker restart 026e11、停止一个已经停止的容器 sudo docker start [OPTIONS] CONTAINER [CONTAINER..] sudo docker start 026e12、进去一个已经运行的容器 sudo docker exec -it /bin/bash13、为镜像添加 Tag sudo docker tag centos:7 172.16.166.130/fsdn/centos:714、创建 docker 容器, 但是不运行 sudo docker create --name maven csphere/mave:3.3.315、复制 docker 中的内容 sudo docker cp maven:/hello/target/hello.war .
#
备注:
curl -SsL -o /tmp/csphere-install.sh https://csphere.cn/static/csphere-install-v2.shsudo env ROLE=controller CSPHERE_VERSION=1.0.1 /bin/sh /tmp/csphere-install.sh
—————————————
希云教程笔记
第一讲 Docker 实战之入门以及 Dockerfile
$ docker build -t registry_url/namespace/csphere/centos:7.1 ./path # 7.1为标签,如果不指定标签默认添加 latest$ supervisorctl # 查看当前容器运行状态
ENTRYPOINT 与 CMD 的区别
- ENTRYPOINT[“executable”,”param1”,”param2”](the preferred exec form)
- ENTRYPOINT command param1 param2(shell form)
docker run -it –entrypoint= 覆盖 Dockerfile ENTRYPOINT []
CMD[“executable”,”param1”,”param2”]
- CMD[“param1”,”param2”] (为 ENTRYPOINT 提供默认参数值)
- CMD command param1 param2
- 区别一
CMD命令会被 docker run 后边的指令所覆盖掉, 而 ENTRYPOINT 不会。
ENTRYPOINT 会被 docker run -it –entrypoint= 覆盖
第二讲 Docker 实战之 Registry 以及持续集成
1. Registry
Docker镜像命名规则
registry_url/csphere/csphere:latest本机地址 + 端口号/目录/镜像名称:版本号
# 首先 pull 一个registry 镜像到本地docker run -d -p 5000:5000 --name registry registry:0.9.1 # registry 默认端口为 5000# 在这里需要配置一个cspheredocker tag centos:6 172.16.166.130:5000/fsdn/centos:6docker push 172.16.166.130:5000/fsdn/centos:6
2. 持续集成 – jenkins
docker run -d -p 8080:8080 --name jenkins \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /root/maven-tar:/root csphere/jenkins:1.609# 注: /usr/bin/docker 的二进制文件 第三个 -v 可选docker exec -it jenins /bin/bash
# 到 jenkins 中添加构建步骤 Execute shelldocker build -t fsdn/centos:6 $WORKSPACE/php-fpm # $WORKSPACE/php-fpm 是 Dockerfile 所在目录
java项目
手动部分
# 构建 Maven 镜像cp /apache-maven-3.3.3-bin.tar.gz ./maven # 复制 maven 文件到 Docker file 文件目录下,也可以在 Dockerfile 中指定地址下载docker build -t csphere/maven:3.3.3 .docker create --name maven csphere/mave:3.3.3# 复制源代码,并且构建镜像docker cp maven:/hello/target/hello.war .docker build -t csphere/hello:1.0 .# 启动 db 容器docker run -d -p 3306:3306 --name mysql csphere/mysql:5.5# -e DB_HOST 域名docker run -d -p 80:8080 --name hello csphere/hello:1.0# 此时, 外网就可以访问项目了
自动部分
# 配置 jenkins# 1. 构建触发器 (目的: 监听代码仓库代码变化)# 身份验证令牌 自己起名字 eg: java-token# 2. 增加 构建 shellREGISTRY_URL=172.16.166.130:5000# 构建 Maven 镜像cp /root/apache-maven-3.3.3-bin.tar.gz $WORKSPACE/mavendocker build -t csphere/maven:3.3.3 $WORKSPACE/mavenif docker ps -a | grep -i maven ; then docker rm -f mavenfidocker create --name maven csphere/maven:3.3.3# 复制源代码,并且构建镜像, 并且将该镜像 push 到 registry 库中docker cp maven:/hello/target/hello.war $WORKSPACE/hellodocker build -t $REGISTRY_URL/csphere/hello:1.0 $WORKSPACE/hellodocker push $REGISTRY_URL/csphere/hello:1.0# 运行容器if docker ps -a | grep -i hello; then docker rm -f hellofidocker run -d -p 80:8080 --name hello $REGISTRY_URL/csphere/hello:1.0# 此时, 等待 jenkins 编译完成之后, 外网就可以访问项目了
第三讲 Docker 实战之监控报警以及日志管理
1. 监控报警
# 启动数据库容器docker run -d -p 3306:3306 --name mysql csphere/mysql:5.5# 创建 WordPress 容器docker run -d -p 80:80 --name wordpress \ -e WORDPRESS_DB_HOST=172.16.166.130 # 传入环境变量 \ -e WORDPRESS_DB_USER=root # 传入环境变量 \ -e WORDPRESS_DB_PASSWORD=3258 # 传入环境变量
2. 日志管理
# 方案# Logstash 管理日志和事件# Elasticsearch 分布式的搜索分析系统# Kibana 可视化日志和数据系统# Logstash-forwarder 转发日志 --> Logstash# 参考: http://github.com/spujadas/elk-docker
第四讲 Docker 实战之网络管理
docker 网络模式
NAT (Network Address Translation)
iptables -t nat -L -n # 查看iptables nat 规则
route -n # 查看路由表Host
Other container
None
Overlay
1. 利用 consul 集群
2. docker service test-bright
第五讲 Docker 实战之持续部署以及弹性伸缩
1. Docker compose 一键发布应用
# 服务编排工具# 结合 Swarm, 分布式部署应用# 动态改变应用, 扩展# 重要文件 docker-compose.ymldocker-compose up -d # 执行此命令进行发布
2. Docker Swarm 集群管理
# Swarm 服务发现# Swarm scheduler (Swarm 调度)
1. Filter
# 1. Constraint(约束)# 2. Affinity(亲和性)# 3. Port(端口)# 4. Dependency(依赖)# 5. Health(健康)
2. Weigh – 权重
# 1. Spread(最少)# 2. Binpack(最多)# 3. Random(随机)
3. 创建 Swarm 集群
# 1. 创建集群token(discovery service)docker create csphere/mysql:5.5 # 创建一个容器ID# 定义 Docker1 主机所属角色docker run -d -p 2376:2375 swarm manage token://xxxx# 2. 加入 Swarm 集群docker run -d swarm join --addr=<node_ip>:<port> token://xxxxdocker -H <mater_ip>:2376 info# 3. 在 master 节点操作 slaver 节点docker -H <slaver_ip>:2376 run -it --name busybox \-e constraint:label_name==doker2 busybox # constraint 为调度策略
第六讲 Docker 实战之存储
Docker 支持的 graphdriver
aufs(ubantu) – 联合文件系统
btrfs(CoreOS)
devicemapper(RedHat, CentOS)
overlayfs(CoreOS)
0 0
- Docker学习笔记-Docker入门
- Docker学习笔记-Docker容器
- Docker学习笔记-Docker端口映射
- Docker学习笔记--Docker常用命令
- Docker学习笔记-Docker端口映射
- Docker学习笔记-Docker端口映射
- Docker学习笔记-Docker端口映射
- Docker 网络学习笔记
- docker学习笔记
- docker 学习笔记
- Docker学习笔记1
- openstack学习笔记----Docker
- Docker学习笔记
- Docker学习笔记(1)
- docker学习笔记1
- docker学习笔记
- Docker学习笔记之一
- docker 学习笔记1
- oracle索引 & 快速生成大量测试数据
- Spring 入门之属性配置
- Redis 中有序集合的操作
- 设置tablayout选中文字颜色和背景图片
- SpringMVC RestTemplate的几种请求调用
- Docker 学习笔记
- 骰子点数识别之图像分割
- JAVA中的三大特性
- 我的世界
- 文章标题
- 带符号的高精度数加减
- 类中的构造函数,析构函数,复制构造函数,赋值函数
- JVM调优
- 初识字符设备驱动