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

[经验分享] docker的基本操作

[复制链接]

尚未签到

发表于 2018-5-29 14:11:18 | 显示全部楼层 |阅读模式
  docker的基本操作
  1、容器的基本操作
  (1)启动容器
  docker run centos echo "hello word"
  (2)启动交互式容器
  docker run -i -t ubuntu /bin/bash
  -i --interactive
  -t --tty
  (3)查看容器
  root@ubuntu-virtual-machine:~# docker ps
  root@ubuntu-virtual-machine:~# docker ps -a
  root@ubuntu-virtual-machine:~# docker inspect 5529d1c45029(id或name)
  (4)指定名字启动容器
  root@ubuntu-virtual-machine:~# docker run --name=container01 -i -t ubuntu /bin/bash
  (5)重新启动停止的容器:
  docker start[-i] 容器名
  (6)删除停止的容器
  docker rm 容器名
  

  2、Docker - 守护式容器
  (1)以守护形式运行容器:
  docker run -i -t IMAGE /bin/bash
  Ctrl+P Ctrl+Q
  (2)附加到运行中的容器:
  docker attach 容器名
  (3)启动守护式容器:
  docker run -d 镜像名[COMMAND][ARG...]
  (4)查看容器日志:
  docker logs [-f][-t][--tail]容器名
  如:docker logs -tf --tail 0 dc1
  (5)查看容器内进程:
  docker top 容器名
  (6)在运行中的容器内启动新进程:
  docker exec [-d][-i][-t]容器名[COMMAND][ARG...]
  (7)停止守护式容器:
  docker stop 容器名
  docker kill 容器名
  (8)使用docker帮助文件
  man docker-run
  man docker-logs
  man docker-top
  man docker-exec
  

  3、在容器中部署静态网站--设置容器的端口映射
  设置容器的端口映射
  run [-P][-p]
  方法一:
  docker run -p 80 -i -t ubuntu /bin/bash
  方法二:
  docker run -p 8080:80 -i -t ubuntu /bin/bash
  方法三:
  docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
  方法四:
  docker run -p 0.0.0.0:8080 -i -t ubuntu /bin/bash
  Nginx部署流程:
  创建映射80端口的交互式容器
  安装Nginx
  安装文本编辑器vim
  创建静态页面
  修改Nginx配置文件
  运行Nginx
  验证网站访问
  docker run -p 80 --name web -i -t ubuntu /bin/bash
  apt-get install -y nginx
  apt-get install -y vim
  mkdir -p /var/www/html
  cd /var/www/html
  cat index.html
  <html>
  <head>
        <title>Nginx in Docker</title>
  </head>
  <body>
         <h1>Hello ,I'm website in Docker!</h1>
  </body>
  </html>
  
  # cat /etc/nginx/sites-enabled/default
  server {
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;
  

  root /var/www/html;//修改
  

  /var/www/html# cd /
  nginx
  4.Docker镜像与仓库(一)
  查看和删除镜像--镜像的存储地址
  /var/lib/docker
  列出镜像
  docker images
  查看镜像
  docker inspect
  删除镜像
  docker rmi
  获取和推送镜像
  查找镜像
  方法一:去网站:registry.hub.docker.com/
  方法二:docker search
  拉取镜像
  docker pull [OPTIONS] NAME [:TAG]
  使用国外的镜像,太慢了,解决方法:
  使用--registry-mirror选项
  1、修改:/etc/default/docker
  2、添加:DOCKER_OPTS = "--registry-mirror=http://MIRROR-ADDR"
  https//www.daocloud.io
  具体操作:
  去以下网站注册,获取一个地址:
  https//www.daocloud.io
  修改配置文件:
  echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://45df74c6.m.daocloud.io\"" | sudo tee -a /etc/default/docker
  sudo service docker restart
  docker pull ubuntu:12.10
  推送镜像
  docker push
  构建镜像
  方法一: docker commit 通过容器构建
  方法二:docker build 通过Dockerfile文件构建
  5、Docker客户端和守护进程
  连接方式:
  方法一:
  unix:///var/run/docker.sock
  如:
  nc -U /var/run/docker.sock
  GET /info HTTP/1.1
  方法二:
  tcp://host.port
  方法三:
  fd://socketfd
  

  查看守护进程
  ps -ef|grep docker
  sudo status docker
  使用service命令管理
  sudo service docker start
  sudo service docker stop
  sudo service docker restart
  

  启动配置文件
  /etc/default/docker
  

  Docker的远程访问
  第二台安装Docker的服务器
  修改Docker守护进程启动选项,区别服务器
  保证client API与Server API版本一致
  6.Docker镜像与仓库(二)
  7.Docker容器的网络连接
  docker0  --linux虚拟网桥
  linux虚拟网桥的特点
  可以设置IP地址
  相当于拥有一个隐藏的虚拟网卡
  管理虚拟网桥
  sudo apt-get install bridge-utils
  sudo brctl show
  

  自定义虚拟网桥
  添加虚拟网桥
  sudo brctl addbr br0
  sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
  更改docker守护进程的启动配置:
  /etc/default/docker中添加DOCKER_OPS值
  -b=br0
  docker容器的互联
  允许所有容器互联
  拒绝容器间互联
  允许特定容器间的连接
  Docker 容器与外部网络的连接
  8、Docker容器的数据管理
  数据卷
  为容器添加数据卷
  sudo docker run -v ~/container_data:/data -it ubuntu /bin/bash
  为数据卷添加访问权限
  sudo docker run -v ~/datavolume:/data:ro -it ubuntu /bin/bash
  使用Dockerfile构建包含数据卷的镜像
  Dockerfile指令:
  VOLUME["/data"]
  数据卷容器:
  挂载数据卷容器的方法:
  docker run --volumes-from [CONTAINER NAME]
  docker数据卷的备份和还原
  数据备份方法
  docker run --volumes-from [container name] -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar [container data volume]
  数据还原方法:
  docker run --volumes-from [container name] -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar [container data volume]
  9、Docker容器的跨主机访问
  使用网桥实现跨主机容器连接
  网桥管理工具:bridge-utils
  

  使用Open vSwitch实现跨主机容器连接
  

  

  使用weave实现跨主机容器连接
  

  

运维网声明 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-482683-1-1.html 上篇帖子: docker+splunk+haproxy实践 下篇帖子: Docker Registry v2 + Token Auth Server (Registry v2 认证)实例。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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