docker架构之初探
2016-08-30 20:32
323 查看
Docker架构理解
Docker状态转移图
Docker 逻辑数据流
删除
下载centos6镜像
docker pull centos:centos6
运行docker 到后台sudo docker run -d -P --name=mytest centos6-ssh
docker run -d -p 0.0.0.0:60000:22 --name=jumpserver centos6-ssh
docker 命令
docker port mytest 22 查看当前容器的22端口对应的宿主机器的端口
docker 数据持久化
载宿主机目录 Docker支持挂载宿主机目录,支持宿主机目录和容器之间文件目录进行映射,彼此共享:
说明数据卷容器也是Docker容器数据持久化的一种方式.正是这个特性,可以让用户方便的在容器之间升级和移动数据卷。
学的越多,越觉得之前说懂得的可笑,可是什么都要一步一步来,不积跬步无以至千里,今天就到这里
修改标签
unalias 删除别名
alias 永久生效 打开 .bashrc 写入alias 命令
centos 6 安装dockersudo yum install docker-io
sudo service docker start
sudo chkconfig docker on
Docker 支持 CentOS6 及以后的版本。
报错Docker#docker dead but pid file exists
错误
查看 /var/log/docker 日志time="2015-02-10T15:26:08+08:00" level="info" msg="+job serveapi(unix:///var/run/docker.sock)"
time="2015-02-10T15:26:08+08:00" level="info" msg="WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please u
pgrade your kernel to 3.8.0.
time="2015-02-10T15:26:08+08:00" level="info" msg="Listening for HTTP on unix (/var/run/docker.sock)"
/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time r
eference
解决办法:执行:yum upgrade device-mapper-libs
错误[opmonitor@iZ28xr6pn3lZ ~]$ docker imagesGet http:///var/run/docker.sock/v1.19/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?[opmonitor@iZ28xr6pn3lZ ~]$
Docker状态转移图
Docker 逻辑数据流
Docker 修改默认存储位置
停止 Docker 服务sudo /etc/init.d/docker stop将原来默认的/var/lib/docker备份一下,然后复制到别的位置并建立一个软链接
cd /var/lib sudo cp -rf docker docker.bak sudo cp -rf docker /<my_new_location>/ sudo ln -s /<my_new_location>/docker docker最后使用 docker info 查看更新结果
删除
docker rmi <image id> docker rm $(docker ps -a -q) docker stop $(docker ps -a -q) docker kill
下载centos6镜像
docker pull centos:centos6
制作一个支持SSH终端登录的镜像
创建Dockerfile# 选择一个已有的os镜像作为基础 FROM centos:lastest # 镜像的作者 MAINTAINER Fanbin Kong "kongxx@hotmail.com" # 安装openssh-server和sudo软件包,并且将sshd的UsePAM参数设置成no RUN yum install -y openssh-server sudo RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config # 添加测试用户admin,密码admin,并且将此用户添加到sudoers里 RUN useradd admin RUN echo "admin:admin" | chpasswd RUN echo "admin ALL=(ALL) ALL" >> /etc/sudoers # 下面这两句比较特殊,在centos6上必须要有,否则创建出来的容器sshd不能登录 RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # 启动sshd服务并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]创建镜像 sudo docker build -t centos6-ssh .
运行docker 到后台sudo docker run -d -P --name=mytest centos6-ssh
docker run -d -p 0.0.0.0:60000:22 --name=jumpserver centos6-ssh
docker 命令
docker port mytest 22 查看当前容器的22端口对应的宿主机器的端口
docker 数据持久化
载宿主机目录 Docker支持挂载宿主机目录,支持宿主机目录和容器之间文件目录进行映射,彼此共享:
docker run -i -t -v /host/dir:/container/path ubuntu /bin/bash在Dockerfile中,则可以使用'VOLUME'命令如创建容器时使用参数v指定一个目录,
sudo docker run -i -t --name DataTest -v /home/mungo/workspace/docker/container_data:/data docker/whalesay /bin/bash
说明数据卷容器也是Docker容器数据持久化的一种方式.正是这个特性,可以让用户方便的在容器之间升级和移动数据卷。
学的越多,越觉得之前说懂得的可笑,可是什么都要一步一步来,不积跬步无以至千里,今天就到这里
修改标签
非root用户在CentOS直接运行Docker命令不用加sudo
alias docker="sudo /usr/bin/docker"unalias 删除别名
alias 永久生效 打开 .bashrc 写入alias 命令
Cent OS 用户sudo免密码方法
$ sudo visudo ## Same thing without a password # %wheel ALL=(ALL) NOPASSWD: ALL qdba ALL=(ALL) NOPASSWD: ALL
centos 6 安装dockersudo yum install docker-io
sudo service docker start
sudo chkconfig docker on
Docker 支持 CentOS6 及以后的版本。
CentOS6
对于 CentOS6,可以使用 <a rel="nofollow" href="https://fedoraproject.org/wiki/EPEL" "="" style="box-sizing: border-box; color: rgb(45, 133, 202); text-decoration: none; background-color: transparent;">EPEL 库安装 Docker,命令如下$ sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm $ sudo yum install docker-io
CentOS7
CentOS7 系统CentOS-Extras库中已带 Docker,可以直接安装:
$ sudo yum install docker安装之后启动 Docker 服务,并让它随系统启动自动加载。
$ sudo service docker start $ sudo chkconfig docker on
报错Docker#docker dead but pid file exists
错误
查看 /var/log/docker 日志time="2015-02-10T15:26:08+08:00" level="info" msg="+job serveapi(unix:///var/run/docker.sock)"
time="2015-02-10T15:26:08+08:00" level="info" msg="WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please u
pgrade your kernel to 3.8.0.
time="2015-02-10T15:26:08+08:00" level="info" msg="Listening for HTTP on unix (/var/run/docker.sock)"
/usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time r
eference
解决办法:执行:yum upgrade device-mapper-libs
错误[opmonitor@iZ28xr6pn3lZ ~]$ docker imagesGet http:///var/run/docker.sock/v1.19/images/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?[opmonitor@iZ28xr6pn3lZ ~]$
相关文章推荐
- Docker中的libcontainer架构图
- Intel芯片架构中TEE的实现技术之SGX初探
- paas架构之docker——镜像管理
- 单一世界架构初探之投影世界
- 单一世界架构初探之主动模式
- Docker源码分析(一):Docker架构
- numa架构初探--持续更新
- 基于Spring Boot、Spring Cloud、Docker的微服务系统架构实践
- Prometheus 架构 - 每天5分钟玩转 Docker 容器技术(83)
- 基于Spring Boot和Spring Cloud实现微服务架构学习(五)-Docker总结
- Chromium多进程架构初探-兼谈Android平台版本
- Android自动化测试初探(三): 架构实现
- 企业OA系统架构改造案例摘录(Raid加速技术+Docker+MariaDB+Keepalived)
- docker初探
- 初探 ELK - 每天5分钟玩转 Docker 容器技术(89)
- 初探 ELK - 每天5分钟玩转 Docker 容器技术(89)
- docker-swarm架构与组成
- Docker+Nginx+Keepalived实现架构高可用
- docker 架构 与原理
- docker:架构拆解