欢迎光临
我们一直在努力

docker入门

本站教程收集整理的这篇文章主要介绍了docker入门,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

docker

多服务器节点自动批量化安装、启停、监控工具

结构

镜像 Image = class? 安装包
仓库 Repository = mvn 管理 Image 各个安装包版本管理
容器 Container = instance? Image 实例
主机 Host 控制中心 控制所有节点
客户端 Client 每一台节点上 安装客户端

环境

wget https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker walker # 非root用户添加docker组

# sudo apt-get purge docker-ce #卸载
# sudo rm -rf /var/lib/docker #清理文件
@H_404_21@

使用

仓库管理

中心仓库
https://hub.docker.com/
可注册个人账号管理自己的镜像 stars

docker login/logout
@H_404_21@
管理镜像
docker --Help
docker search ubuntu  # 搜索镜像 
docker pull/push ubuntu  # 手动下载上传镜像 
# 新建镜像
vi Dockefile
	FROM Nginx # 基线
	ARG NAME=Hello VERSION=1.0 # 上下文变量 参数
	ENV JAVA_HOME=/home/java7 # 目标容器环境变量
	VOLUME /home/walker/Nginx # 数据卷 默认匿名卷 容器重启丢失? 避免容器扩大
	EXPOSE 6379 6389 # 声明端口
	workdir /home/walker/workdir # 工作目录 须提前建好 每一个 RUN 指令 每一层镜像都存在
	USER walker:usergrp # 指定用户组 须已存在
	HEALTHchecK NONE # 屏蔽基线的健康检查

	RUN echo 'h' > ${JAVA_HOME}/Hello.txt && echo 'w' > /${NAME}/test.txt # 每次指令都会封装一层 镜像膨胀 减少行数!!!
	#所有指令均支持两种写法
	RUN ['echo', 'Hello'] # build 阶段执行
	copY --chown=walker:rootgrp /home/root/* /home/walker/	
	ADD # 同 copY 自动解压!

	ONBUILD echo 'from this onbuild' # 同 RUN 被依赖基线 from 时 build 时执行

	ENTRYPOINT ["Nginx", "-c"] # 定参 类似 CMD 但不会被 命令参数覆盖
	CMD ["/etc/Nginx/Nginx.conf"]  # 变参 同 RUN run 阶段执行 只最后一行生效!!! 一般变参使用
	# 不传参数时 docker run Nginx:test  			     => Nginx -c /etc/Nginx/Nginx.conf
	#   传参数时 docker run Nginx:test -c Hello.conf  => Nginx -c Hello.conf

docker build -t Nginx:v2 . # 将本路径一起打包上传

# 容器快照提交镜像
docker commit  ${iD} ${namE}:v2
	-m="my new dk" # commit 描述信息
	-a="walker" # autho 作者
	test/ubuntu:v2 # 镜像目标位置 ${tag}

docker images ls #本地镜像清单
docker tag ${iD} # 标签 命名

# 管理网络 域名?命名空间 容器互联
docker network create -d bridge test-net 
			   -d bridge / overlay 网络模型
docker network ls # 网络列表
#宿主机配置所有容器统一dns
cat /etc/docker/daemon.json
	{
		"dns":["114.114.114.114"]
	}

# 实例化镜像 创建容器
docker run ubuntu:15.10 /bin/echo "Hello world"
	run # (安装)启动 容器
	-i # 开启交互 输入 输出 
	-t #交互终端模式
	-d # 后台模式 返回 id ctrl+z?
	-P # 随机映射高端口主机?
	-p 127.0.0.1:5000:5000/tcp # 指定ip端口映射
	-v /home/walker/ubu # 指定卷 挂载点 VOLUMN
	--rm # 退出容器时 自动清理文件系统
	--hostname=HOSTNAME # 主机名 /etc/hosts  /etc/hostname
	--name ubuntu1510  # 命名
	--build-arg NAME=name # ARG 上下文变量替换
	--dns=114.114.114.114  # 指定 dns
	--network test-net # 加入网络 bash 中 可 ping ${tag} 即可 ping 通
	ubuntu:15.10 # 镜像 ${tag} : 版本
	/bin/echo "Hello 便宜美国vps world" # 容器中执行指令
@H_404_21@
管理容器
docker ps -a  # = ps jobs
	-l last 最后一次创建的容器
	status 状态 created restarTing running/up paused exited dead 

docker start ${iD}/${namE}  
	start/stop/restart
	port # 端口映射查看
	inspect # 容器信息详情
	logs -f  # tail -f 跟踪标准输出 stdout
	attach # 前台容器 fg? 退出即关闭
	exec -it ${iD} /bin/bash  # 前台容器 临时接管 不能关闭
	export ${iD} > ubuntu15.tar  # 导出快照
cat ubuntu15.tar | docker import - test/ubuntu:v1  # 导入快照
docker import http://xxxx/xxx example/imgerepo
docker container prune  # 清理终止状态的容器

@H_404_21@
项目环境 多容器配置依赖 ymL 工具 Docker Compose
集群环境 海量服务器管理 Docker Machine

多服务器批量操作
启动、检查、停止、重启、托管、升级(docker)


docker-machine create --driver virtualBox test #创建

docker-machine ${action} ${name}
	ls
	ip
	stop/start/restart/upgrade/rm/kill/env
	inspect #详情
	ssh/scp

@H_404_21@

本站总结

以上是本站教程为你收集整理的docker入门全部内容,希望文章能够帮你解决docker入门所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。