Docker In Action 学习笔记 根据第二版有所更新
第一章
最简单的 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 学习笔记 根据第二版有所更新的更多相关文章
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 红帽学习笔记[RHCSA] 第二周
目录 红帽学习笔记[RHCSA]第二周 环境 第七课[网络配置相关] 在Vmware中添加网卡 将网卡添加到虚拟机上 关于网卡命名规则 配置网络 网络配置命令总结 更改hostname 关于SSH的一 ...
- Stealth视频教程学习笔记(第二章)
Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...
- 【web开发学习笔记】Structs2 Action学习笔记(两)
action学习笔记2-大约action method讨论 Action运行的时候并不一定要运行execute方法,能够在配置文件里配置Action的时候用method=来指定运行哪个方法 也能够在u ...
- Docker Image管理学习笔记,ZT
Docker Image管理学习笔记 http://blog.csdn.net/junjun16818/article/details/38423391
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十三章:角色动画 学习目标 熟悉蒙皮动画的术语: 学习网格层级变换 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十二章:四元数(QUATERNIONS) 学习目标 回顾复数,以及 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION)
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十一章:环境光遮蔽(AMBIENT OCCLUSION) 学习目标 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二十章:阴影贴图 本章介绍一种在游戏和应用中,模拟动态阴影的基本阴影 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...
随机推荐
- 解决 ant design vue Carousel 图片不能点击的问题
pointer-events: none 的作用如下: // 阻止用户的点击动作产生任何效果 // 阻止缺省鼠标指针的显示 // 阻止CSS里的hover和active状态的变化触发事件 // 阻止J ...
- 《OKR源于英特尔和谷歌的目标管理利器》读书笔记
17年10月下旬至11月,因团队需要改变考核方式以及更好的服务业务,Q4将尝试OKR的方式进行考核,故阅读了此书,有些想法与笔记. OKR定义:OKR是一套严密的思考框架和持续的纪律要求,旨在确保员工 ...
- (四)kafka基础术语
1 Topic Kafka消息分类的标签,是一个逻辑概念. 2 Partion 主题作为消息的归类,可以细分为一个或多个分区,分区可以看做是对消息的二次归类.分区可以有一个至多个副本,每个副本对应一个 ...
- 【C++复习】5.7 多文件结构与编译预处理命令
1.C++项目结构 C++程序的一般组织架构 类声明文件(.h文件) 类实现文件(.cpp文件) 类的使用文件(main()所在的.cpp文件) 用工程组合各文件 2.编译链接 编译链接过程 3.外部 ...
- 通过ASP生成html纯静态页面的简单示例
本站收录这篇文章通过ASP生成html纯静态页面的简单示例,详细解说文章中相关静态 asp 技术与知识,欢迎能给大家一些在这方面的支持和帮助!下面是详细内容: 原理:通过浏览器传送变量,如 http: ...
- Vue2 Axios简单封装
/**axios封装 * 请求拦截.相应拦截.错误统一处理 */ import axios from 'axios';import QS from 'qs'; import { Toast } fro ...
- JQuery电梯导航
// .zjong .dag_id 内容区// .zuoyou .dao_hang a 电梯按钮 $(function() { $(".zjong .dag_id").each(( ...
- 【C学习随笔】day1-4 写一篇博客
1>写一个自我介绍 大家好 我是一名普普通通的单片机CODER,懒懒散散的度过了四年大学时光,等到工作时才发现自己缺失了很多的技术.打算在一年内恶补大学时的知识,争取早日成为一名合格的码农.2& ...
- js判断数组中对象是否存在某个值
js判断数组中对象是否存在某个值 var arr = [{ name: "回锅肉", value: "0" }, { name: "小炒肉" ...
- 第八章:diff
1.git diff命令的格式 1]可以使用git diff命令的来源,(任意树对象.工作目录.索引) 2]git diff命令进行树比较时,可以通过(提交名.分支名.标签名) 3]git d ...