docker安装与基本应用

docker安装与基本应用_第1张图片
安装docker
centos6*
[root@localhost /]# yum -y install docker-io
curl -sSL -O https://get.docker.com/builds/Linux/x86_64/docker-1.9.1
centos7*
/etc/yum.repos.d/docker.repo
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey= https://yum.dockerproject.org/gpg

yum install docker-engine

更改配置文件

[root@localhost /]# vi /etc/sysconfig/docker

    other-args列更改为:other_args="--selinux-enabled"
启动docker服务

[root@localhost /]# service docker start
Starting cgconfig service:                                 [  OK  ]
Starting docker:                                               [  OK  ]

加入开机启动
[root@localhost /]# chkconfig docker on

基本信息查看
docker version: 查看docker的版本号,包括客户端、服务端、依赖的Go等
docker info : 查看系统(docker)层面信息,包括管理的images, containers数等

搜索镜像
docker search :在docker index中搜索image
[root@localhost /]# docker search ubuntu12.10
NAME                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mirolin/ubuntu12.10                                                         0
marcgibbons/ubuntu12.10                                                     0
mirolin/ubuntu12.10_redis                                                   0
chug/ubuntu12.10x32         Ubuntu Quantal Quetzal 12.10 32bit  base i...   0
chug/ubuntu12.10x64         Ubuntu Quantal Quetzal 12.10 64bit  base i...   0

下载镜像
 docker pull :从docker registry server 中下拉image

[root@localhost /]# docker pull chug/ubuntu12.10x64

查看镜像 
 docker images: 列出images
 docker images -a :列出所有的images(包含历史)
 docker images --tree :显示镜像的所有层(layer)
 docker rmi  : 删除一个或多个image

使用镜像创建容器

[root@localhost /]# docker run chug/ubuntu12.10x64  /bin/echo hello world
hello world

更新镜像

更新镜像之前,我们需要使用镜像来创建一个容器。
runoob@runoob :~ $ docker run - t - i ubuntu : 15.10 / bin / bashroot@e218edb10161 :/#
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit命令来退出这个容器。
此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。
runoob@runoob :~ $ docker commit - m = "has update" - a = "runoob" e218edb10161 runoob / ubuntu : v2sha256 : 70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各个参数说明:
  • -m:提交的描述信息
  • -a:指定镜像作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要创建的目标镜像名

设置镜像标签
我们可以使用 docker tag 命令,为镜像添加一个新的标签。
runoob@runoob :~ $ docker tag 860c279d2fec runoob / centos : dev
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。

交互式运行
[root@localhost /]# docker run -i -t chug/ubuntu12.10x64  /bin/bash
root@2161509ff65e:/#
docker安装与基本应用_第2张图片

再次启动容器
    docker start/stop/restart :开启/停止/重启container
    docker start [container_id] :再次运行某个container (包括历史container)
    docker attach [container_id] :连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例) 但是它有一个缺点,只要这个连接终止,或者使用了exit命令,容器就会退出后台运行

使用docker exec命令
这个命令使用exit命令后,不会退出后台,一般使用这个命令,使用方法如下
docker exec -it db3 /bin/bash 或者 docker exec -it d48b21a7e439 /bin/bash

    解决:
其实官方已经早就不推荐使用lxc了,所以只要去掉启动参数设置的lxc选项即可
docker安装与基本应用_第3张图片

docker start -i :启动一个container并进入交互模式(相当于先start,在attach)
    docker run -i -t /bin/bash :使用image创建container并进入交互模式, login shell是/bin/bash
    docker run -i -t -p :映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。
    注:使用start是启动已经创建过得container,使用run则通过image开启一个新的container。

docker端口映射
docker指令: docker run -p ip:hostPort:containerPort redis
  • -P :是容器内部端口随机映射到主机的高端口。
  • -p : 是容器内部端口绑定到指定的主机端口 
IP表示主机的IP地址。 
hostPort表示宿主机的端口。 
containerPort表示虚拟机的端口


查看WEB应用程序日志
docker logs [ID或者名字] 可以查看容器内部的标准输出。
[root@docker ~]# docker logs -f 36fb5b62941c
-f: 让  dokcer logs  像使用  tail -f  一样来输出容器内部的标准输出。

Docker容器和本机之间的文件传输
主机和容器之间传输文件的话需要用到容器的ID全称。
本机和容器之间的文件传输 : docker cp 本地文件路径 ID全称:容器路径
容器传输文件到本地 : docker cp ID全称:容器文件路径 本地路径
-v 挂载目录 /test:/soft  前面的目录是宿主机目录,后面的目录是容器内目录。
docker安装与基本应用_第4张图片

停止WEB应用容器
runoob@runoob :~ $ docker stop


 删除容器
    docker rm :删除一个或多个container
    docker rm `docker ps -a -q` :删除所有的container
    docker ps -a -q | xargs docker rm :同上, 删除所有的container
删除镜像
docker rmi 镜像ID
删除镜像前要删除该镜像运行的容器。

查看容器内运行的程序
docker top < container>
[root@docker ~]# docker top tomcat_1



容器自动重启
--restart=always  意味着无论容器因何种原因退出(包括正常退出),就立即重启。该参数的形式还可以是  --restart=on-failure:3 ,意思是如果启动进程退出代码非0,则重启容器,最多重启3次。

pause/unpause 容器
暂时让容器暂停工作一段时间,处于暂停状态的容器不会占用 CPU 资源,直到通过  docker unpause  恢复运行。

内 存限额
-m  或  --memory :设置内存的使用限额,例如 100M, 2G。
--memory-swap :设置  内存+swap  的使用限额。
如果在启动容器时只指定  -m  而不指定  --memory-swap ,那么  --memory-swap  默认为  -m  的两倍

容器执行压力测试
 --vm 1 --vm-bytes 280M
--vm 1 :启动 1 个内存工作线程。
--vm-bytes 280M :每个线程分配 280M 内存。


持久化容器与镜像
    6.1 通过容器生成新的镜像
    运行中的镜像称为容器。你可以修改容器(比如删除一个文件),但这些修改不会影响到镜像。不过,你使用docker commit 命令可以把一个正在运行的容器变成一个新的镜像。
    docker commit [repo:tag] 将一个container固化为一个新的image,后面的repo:tag可选。

你可能感兴趣的:(docker)