当前位置: 移动技术网 > 科技>操作系统>Linux > docker 入门

docker 入门

2018年11月13日  | 移动技术网科技  | 我要评论

憋宝传奇,ttshu,冒险岛小游戏

  • docker的介绍及部署

docker是通过内核虚拟化技术(namespaces及cgroups cpu、内存、磁盘io等)来提供容器的资源隔离与安全保障等。由于docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要类似虚拟机(vm)额外的操作系统开销,提高资源利用率。

docker的主要目标是"build,ship and run any app,angwhere",构建,运输,处处运行 

构建:做一个docker镜像

运输:docker pull

运行:启动一个容器

每一个容器,他都有自己的文件系统rootfs.

kvm解决了硬件和操作系统之间的依赖

docker解决了软件和操作系统环境之间的依赖,能够让独立服务或应用程序在不同的环境中,得到相同的运行结果。

docker容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

 

  • docker 简介

什么是容器?

   一种虚拟化的方案

操作系统级别的虚拟化

只能运行相同或相似内核的操作系统

依赖于linux内核特性:namespacecgroups(control group)

  • 什么是docker

  将应用程序自动部署到容器

go语言开源引擎 github地址:https://github.com/docker/docker

  • docker的目标:

提供简单轻量的建模方式

职责的逻辑分离

快速高效的开发生命周期

鼓励使用面向服务的架构

  • docker的使用场景

1、 使用docker容器开发、测试、部署服务

2、 创建隔离的运行环境

3、 搭建测试环境

4、 构建多用户的平台即服务(pass)基础设施

5、 提供软件即服务(saas)应用程序

6、 高性能、超大规模单位宿主机部署 

  • docker 的安装

yum install -y docker 

 

docker的镜像管理

  • 搜索镜像

docker search
选镜像的建议:
1,优先考虑官方
2,starts数量多

  • 获取镜像

docker pull(push)
镜像加速器:阿里云加速器,daocloud加速器,中科大加速器,docker 中国官方镜像加速:https://registry.docker-cn.com

docker pull centos:6.8(没有指定版本,默认会下载最新版)

##配置docker镜像加速
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

##第三方docker镜像仓库,使用方法:
docker pull index.tenxcloud.com/tenxcloud/httpd:latest

  • 查看镜像

docker images

  • 删除镜像

docker rmi 例子:docker image rm centos:latest

  • 导出镜像

docker save 例子:docker image save centos > docker-centos7.4.tar.gz

  • 导入镜像

docker load 例子:docker image load -i docker-centos7.4.tar.gz

docker的容器管理


docker run -d -p 80:80 nginx
run(创建并运行一个容器)
-d 放在后台
-p 端口映射
-v 源地址(宿主机):目标地址(容器)

nginx docker镜像的名字

docker run -it --name centos6 centos:6.8 /bin/sh
-it 分配交互式的终端
--name 指定容器的名字
/bin/sh覆盖容器的初始命令

  • 启动容器

docker run image_name
docker run -it image_name cmd

docker run ==== docker create + docker start

  • 停止容器

docker stop container_id

  • 杀死容器

docker kill container_name

  • 查看容器列表

docker ps
docker ps –a

  • 进入容器

*** docker exec (会分配一个新的终端tty)
docker exec [options] container command [arg...]

docker exec -it 容器id或容器名字 /bin/bash

docker attach(使用同一个终端)
docker attach [options] container
nsenter(安装yum install -y util-linux)

  • 删除容器

docker rm

  • 批量删除容器

docker rm -f `docker ps -a -q`

总结:docker容器内的第一个进程必须一直处于前台运行的状态(必须夯住),否则这个容器,就会处于退出状态!

  • docker容器的网络访问

指定映射(docker 会自动添加一条iptables规则来实现端口映射)
-p hostport:containerport
-p ip:hostport:containerport
-p ip::containerport(随机端口)
-p hostport:containerport:udp
-p 81:80 –p 443:443

随机映射
docker run -p 80(随机端口)

  • docker的数据卷管理

/usr/share/nginx/html

数据卷(文件或目录)
-v /data
-v src(宿主机的目录):dst(容器的目录)
数据卷容器
--volumes-from

  • 手动将容器保存为镜像

docker commit 容器id或者容器的名字 新的镜像名字[:版本号可选]

1):基于容器制作镜像
docker run -it centos:6.8
######
yum install httpd
yum install openssh-server
/etc/init.d/sshd start

vi /init.sh
#!/bin/bash
/etc/init.d/httpd start
/usr/sbin/sshd -d

chmod +x /init.sh

2)将容器提交为镜像
docker commit centos:6  centos6-ssh-httpd:v1

3)测试镜像功能是否可用

 

  •  docker-容器的基本操作

docker  run  image [command][arg]

         run 在新容器中执行命令

[root@jinqiu ~]# docker run 5182e96772bf echo 'hello'

hello

 

启动交互式容器

   docker run -i -t image /bin/bash

      -i --interactive=ture|false 默认是false 

      -t --tty=true|false 默认是false

[root@jinqiu ~]# docker run -it 5182e96772bf /bin/bash

[root@168b47a3f377 /]# ps -ef

 

查看容器:

   docekr ps [-a] [-l]

     -a 查看所有容器

     -l  查看最新创建的容器

   docker inspect 容器id

      查看容器的详细信息

自定义容器名字:

    docker run --name=自定义名 -it image /bin/bash

    [root@jinqiu ~]# docker run --name=centos7.1 -it 5182e96772bf /bin/bash

[root@c989d1727358 /]#

 

 

重新启动停止容器:

    docker start [-i] 容器名

    [root@jinqiu ~]# docker start -i centos7.1

[root@c989d1727358 /]#

 

删除停止的容器

    docker  rm  容器id

docker rm -f `docker ps -a -q`   删除多个容器

 

 

   

docker守护式容器:

   能够长期运行

   没有交互式会话

   适合运行应用程序和服务

以守护形式运行容器:

  docker run -i -t image /bin/bash

  ctrl +p  

  ctrl +q

 

docker run --name=自定义名字 -it  -d  容器id

a63bd654266b4e3d028ee094f8288a0e9fcc0550c7fb520c63a4abf375dcee3b

 

 

进入容器

  [root@jinqiu ~]# docker attach 1577ab130215

[root@1577ab130215 /]#

[root@jinqiu ~]# docker exec -it 容器id  /bin/bash

[root@3eab758d74af /]# ls

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网