docker安装与启动
安装docker

[root@localhost /]# yum -y install docker-io

更改配置文件

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

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

[root@localhost /]# service docker start
重启docker
service docker restart

Starting cgconfig service: [ OK ]
Starting docker: [ OK ]

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

基本信息查看
docker version:查看docker的版本号,包括客户端、服务端、依赖的Go等

[root@localhost /]# docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0

1、进入容器命令:
sudo docker exec -ti 64134af51c2b /bin/sh
其中64134af51c2b表示要进入的容器名称
2、退出容器:exit

3、查看日志文件:tail -f xxx.log

ssh ubuntu@172.16.200.59

启动docker :service docker start

docker下载的镜像存放地址:一般都是在/var/lib/docker/devicemapper/mnt目录下

docker镜像文件的导出导入:
可联网的虚拟机中先获取registry镜像,然后导出tar格式的镜像文件。
docker save registry > /tmp/registry.tar
在目标虚拟机中导入tar格式的镜像文件。
docker load <registry.tar
然后通过docker images 命令即可查看导进来的镜像文件了。
启动容器:docker run IMAGE ID
通过docker ps -a 查看所有正在运行的容器

sudo docker run -i -t ubuntu /bin/bash
这条命令的含义:
首先,我们告诉 Docker 执行 docker run 这条命令,并且带上 -i -t 这两个参数。
-i 标志保证容器中 STDIN 是开启的,虽然并没有附着在容器中;
-t 标志要为新创建的容器分配一个伪 tty 终端,这样我们就能在新创建容器中使用 交互式 shell ;
接下来,我们告诉 Docker 基于什么镜像来创建容器,实例中使用的是 ubuntu 镜像。
随后, Docker 在文件系统内部用这个镜像创建了一个容器,该容器有着自己的网络、IP地址以及和宿主主机用来通信的桥接网络接口。
最后,在新创建的容器中运行 /bin/bash 命令启动了一个 Bash shell.
这样,容器创建完毕后,我们就可以看到容器中启动了shell .

docker 移除一个容器;
第一步:先停止该容器:docker stop 79072778a521
第二步:移除该容器: docker rm 79072778a521

进入容器的方法:1、attach ;3、exec
首先不管采用那种方式,必须先起一个容器:创建一个守护态的Docker容器
sudo docker run -itd ubuntu:14.04 /bin/bash
使用docker ps -a 命令查看容器的id 44fc0f0582d9
1、attach方法:
sudo docker attach 44fc0f0582d9
然后从[root@localhost /]变成了[root@44fc0f0582d9 /],这就说明进入了44fc0f0582d9容器
进入容器后,输入ls命令,列出所有的文件夹,跟我们常用的系统一模一样:
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
退出容器exit,这样又变成了[root@localhost /]
2、使用exec:
sudo docker exec -it 44fc0f0582d9 /bin/bash
如果进入容器报错说容器没有启动,需要先启动,可以使用docker restart 44fc0f0582d9命令将44fc0f0582d9容器重启下,然后再使用进入容器命令。

//////////////////////////////////////////////////////////////////////////
基于ubuntu基础镜像创建一个nginx镜像
1、首先进入ubuntu容器中,然后在该容器中创建一个nginx目录
ubuntu@ubuntu:~$ mkdir nginx #创建nginx目录
ubuntu@ubuntu:~$ cd nginx #进入目录
ubuntu@ubuntu:~/nginx$ touch Dockerfile 执行Dockerfile文件

Dockerfile文件:
FROM ubuntu:14.04
MAINTAINER Reed "reed@example.com"

RUN apt-get update
RUN apt-get -y -q install nginx
RUN mkdir -p /var/www/html

ADD global.conf /etc/nginx/conf.d/
ADD nginx.conf /etc/nginx/nginx.conf

EXPOSE 80
对上面Dockerfile文件做一个解释:
FROM 指定基础镜像,我们制做的镜像是在Ubuntu:14.04的基础上生成的。
MAINTAINER 镜像制作人的信息
RUN 指定创建镜像时执行的命令
ADD 将本地文件添加到镜像中
EXPOSE 容器开放80端口

docker容器迁移:
docker exoprt 容器id >ubuntu_wrong.tar #ubuntu_wrong.tar 是你自己给容器起的一个英文名字,方便识别
du -sh ubuntu_wrong.tar
默认是把ubuntu_wrong.tar拷贝到root根目录下下的;
然后将该ubuntu_wrong.tar再拷贝到要迁移的服务器上。
然后通过下面的命令:
cat ubuntu_wrong.tar |sudo docker import - wr:latest
其中wr是自己起的一个名字。latest表示最新,也可以指定一个版本。

docker镜像迁移迁入:
导出镜像文件:
sudo docker save -o wrong-mysql.tar 114.113.1.101:6666/admin/commsrvmongodb:v3.4.82f5fd7
其中114.113.1.101:6666/admin/commsrvmongodb是镜像的名称
v3.4.82f5fd7是镜像的版本
wrong-mysql.tar是迁移出来的名称,到当前路径下。

导入镜像文件:
sudo docker load -i wrong-mysql.tar
必须在wrong-mysql.tar路径下面操作

修改docker 的配置文件:cat /etc/sysconfig/docker
将docker设为开机启动:chkconfig docker on

宿主机和容器的文件相互复制
1、从docker中拷贝数据到宿主机:
首先在宿主机上通过sudo docker ps | grep demo
查出demo的容器id:b2764cd71857
然后在宿主机上执行下面命令:
docker cp containerId:/file/path/within/container /host/path/target
例如:
sudo docker cp b2764cd71857:/home/logs/rm-service/log/zip /home

2、从宿主机拷贝数据到docker中;
sudo docker cp /home/ubuntu/wr/pm-adaptor.jar f3a2a81eb929:/home/zenap/pm-adaptor/pm-adaptor.jar

最新文章

  1. JS 原型的妙用
  2. Android Fragment (二) 实例2
  3. 腾讯bugly 的crash 上报和umeng的比较
  4. Hadoop 权威指南学习2 (Sqoop)
  5. codeforces 487A A. Fight the Monster(二分)
  6. HTML 文本格式化
  7. 软件测试技术(二)——使用等价类划分的方法进行的UI测试
  8. 银联SDK
  9. Let&#39;s go home
  10. jQuery 事件 - error() 方法
  11. Oracle EBS-SQL (INV-11):检查子库存会计信息.sql
  12. java面试题大全-基础方面
  13. mytest 截图
  14. 用批处理文件删除n天前的文件
  15. HDU-1701-ACMer
  16. div内部元素居中
  17. 小米Java程序员第二轮面试10个问题,你是否会被刷掉?
  18. PAT乙级-1042. 字符统计(20)
  19. 微信小程序 open-data更改样式 open-data 显示头像 圆形
  20. leetcode32

热门文章

  1. hdu 3336 Count the string(next数组)
  2. cassandra在服务端像leveldb一样进行插入初试成功
  3. Apostrophe not preceded by \
  4. I.MX6 MAC Address hacking
  5. Java内存溢出?
  6. 【转】 JUnit单元测试--IntelliJ IDEA
  7. Sublime Text 常用的16 个 Sublime Text 快捷键
  8. Table View Programming Guide for iOS---(五)---Creating and Configuring a Table View
  9. ORACLE PL/SQL 实例精解之第七章 迭代控制之二
  10. 深度解密Go语言之 map