设为首页 收藏本站
查看: 768|回复: 0

[经验分享] docker架构之初探

[复制链接]

尚未签到

发表于 2018-5-29 08:10:02 | 显示全部楼层 |阅读模式
  

  

  

  Docker架构理解
DSC0000.png

  

  

  

  

  

  Docker状态转移图
  

DSC0001.png

  

  

  Docker 逻辑数据流
DSC0002.jpg

  

  

  

  

  

  

  

  

  

  

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 安装docker


  • sudo 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-ioCentOS7
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 images

Get 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 ~]$

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482349-1-1.html 上篇帖子: Docker 容器的导入和导出操作 下篇帖子: Docker的安装与启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表