第一章

最简单的 hello_world/Dockerfile

FROM busybox:latest
CMD ["echo", "hello world"]

第二章

docker run --detach \
--name web \
nginx:latest docker run -d \
--name mailer \
dockerinaction/ch2_mailer docker run --interactive --tty \
--link web:web \
--name web_test \
busybox:1.29 /bin/sh docker run -it \
--name agent \
--link web:insideweb \
--link mailer:insidemailer \
dockerinaction/ch2_agent docker ps #
docker run -d --name namespaceA \
busybox:1.29 /bin/sh -c "sleep 30000"
docker run -d --name namespaceB \
busybox:1.29 /bin/sh -c "nc -l 0.0.0.0 -p 80" docker exec namespaceA ps
docker exec namespaceB ps docker run --pid host busybox:1.29 ps docker run -d --name webConflict nginx:latest docker logs webConflict docker exec webConflict nginx -g 'daemon off;' # 解决方案
docker run -d --name webA nginx:latest
docker logs webA
docker run -d --name webB nginx:latest
docker logs webB # 容器ID写入文件 CID=$(docker ps --latest --quiet)
echo $CID CID=$(docker ps -l -q)
echo $CID MAILER_CID=$(docker run -d dockerinaction/ch2_mailer) WEB_CID=$(docker create nginx) AGENT_CID=$(docker create --link $WEB_CID:insideweb \
--link $MAILER_CID:insidemailer \
dockerinaction/ch2_agent) echo $MAILER_CID
echo $AGENT_CID # wrong
docker start $AGENT_CID
docker start $WEB_CID # right
docker start $WEB_CID
docker start $AGENT_CID MAILER_CID=$(docker run -d dockerinaction/ch2_mailer)
WEB_CID=$(docker run -d nginx)
AGENT_CID=$(docker run -d \
--link $WEB_CID:insideweb \
--link $MAILER_CID:insidemailer \
dockerinaction/ch2_agent) docker run -d --name wp --read-only wordpress:5.0.0-php7.2-apache docker inspect --format "{{.State.Running}}" wp docker logs wp docker run -d --name wp_writable wordpress:5.0.0-php7.2-apache docker container diff wp_writable docker run -d --name wp2 --read-only -v /run/apache2/ --tmpfs /tmp wordpress:5.0.0-php7.2-apache
docker logs wp2 docker run -d --name wpdb -e MYSQL_ROOT_PASSWORD=ch2demo mysql:5.7 docker run -d --name wp3 --link wpdb:mysql -p 8000:80 --read-only -v /run/apache2/ --tmpfs /tmp wordpress:5.0.0-php7.2-apache docker inspect --format "{{.State.Running}}" wp3 #!/bin/sh
DB_CID=$(docker create -e MYSQL_ROOT_PASSWORD=ch2demo mysql:5.7)
docker start $DB_CID
MAILER_CID=$(docker create dockerinaction/ch2_mailer)
docker start $MAILER_CID
WP_CID=$(docker create --link $DB_CID:mysql -p 80 \
--read-only -v /run/apache2/ --tmpfs /tmp \
wordpress:5.0.0-php7.2-apache)
docker start $WP_CID
AGENT_CID=$(docker create --link $WP_CID:insideweb \
--link $MAILER_CID:insidemailer \
dockerinaction/ch2_agent)
docker #!/bin/sh
if [ ! -n "$CLIENT_ID" ]; then
echo "Client ID not set"
exit 1
fi
WP_CID=$(docker create \
--link $DB_CID:mysql \
--name wp_$CLIENT_ID \
-p 80 \
--read-only -v /run/apache2/ --tmpfs /tmp \
-e WORDPRESS_DB_NAME=$CLIENT_ID \
--read-only wordpress:5.0.0-php7.2-apache)
docker start $WP_CID
AGENT_CID=$(docker create \
--name agent_$CLIENT_ID \
--link $WP_CID:insideweb \
--link $MAILER_CID:insidemailer \
dockerinaction/ch2_agent)
docker start $AGENT_CID # 容器的状态和依赖 # 清理
docker rm -vf $(docker ps -a -q)

题外话:3句话的魅力

docker create --name mysql_data_container \
-v /var/lib/mysql ubuntu docker run --volumes-from mysql_data_container \
-v /var/lib/mysql:/var/lib/mysql \
-e MYSQL_USER=mysql \
-e MYSQL_PASSWORD=mysql \
-e MYSQL_DATABASE=test \
-e MYSQL_ROOT_PASSWORD=test -it \
-p 3306:3306 \
-d mysql docker run -d \
--name wordpress \
--link mysql:mysql \
wordpress

可能 容器id小问题

命令小结

docker images
docker search nginx
docker run -d --name xxx1 nginx
docker run -it --name xxx2 nginx
docker run --link original_container_name:new_name xxx # 允许link多个 docker ps
docker ps -a
docker restart xxx
docker stop xxxx docker logs xxx

Docker In Action 学习笔记 根据第二版有所更新的更多相关文章

  1. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  2. 红帽学习笔记[RHCSA] 第二周

    目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...

  3. Stealth视频教程学习笔记(第二章)

    Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  4. 【web开发学习笔记】Structs2 Action学习笔记(两)

    action学习笔记2-大约action method讨论 Action运行的时候并不一定要运行execute方法,能够在配置文件里配置Action的时候用method=来指定运行哪个方法 也能够在u ...

  5. Docker Image管理学习笔记,ZT

    Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391

  6. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...

  7. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...

  9. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影 ...

  10. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...

随机推荐

  1. SqlServer的主键和外键

    SqlServer在创建表时要有 完整性约束(主键)和参照性约束(外键) 1.在建表时创建主键 第一种方法: 第二种方法: 联合主键,即2个主键,sid和cid 2.如果表已经存在,需要创建主键 外键

  2. APP与Web测试区别

    相同点: WEB 测试和 App 测试从流程上来说,没有区别.都需要经历测试计划方 案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说, WEB 测试和 APP 测试其测试类型也基本相 ...

  3. mysql问题汇总含解决方案

    MySQL,插入数据提示"The table `xxx` is full" 背景:MEMORY引擎,hash索引 解决方法 1. 查看当前设置的table_size show va ...

  4. DOS批处理命令,自动获取本机系统及硬件配置信息

    可以配合域策略自动下发执行, 批量收集域内电脑配置; 手动执行亦可; 如下保存成.bat批处理文件执行即可. /*&cls&echo off&cd /d "%~dp0 ...

  5. ssh 登陆 Host key verification failed.

    报错 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION ...

  6. C#和.NET Framework 简介

    C#是一种通用的类型安全且面向对象编程的语言.这种语言的目标是提高程序员的生产力,为此需要在简单性.可表达性和性能之间实现平衡.C#语言的首席架构师从第一个版本开始就是Anders Hejlsberg ...

  7. uniapp 上传

    fileList1: [], // uviewui ui组件<u-upload uploadText="上传打款凭证" :fileList="fileList1&q ...

  8. java连接couchbase的memcache

    没有参考代码的时候重新写还是有点累的,这是重温了,第一次写的时候参考了别的一些乱七八糟的代码,虽然不是和这个一样的,不过在不懂的情况下还是很快写出来了,反而是这次光是找需要哪些jar都搞了半天,最后发 ...

  9. spring 任务执行器实例

    @Resource(name = "jobTaskExecutor") protected TaskExecutor jobTaskExecutor; @Override publ ...

  10. No.1.4

    选择器进阶 [复合选择器]:后代选择器:空格    语法:选择器1 选择器2 {css} 子代选择器:>   语法:选择器1>选择器2 {css} [并集选择器]:, 语法:选择器1 , ...