docker 介绍
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的
优势。docker 比起虚拟机更加适合在多个服务器上部署一样的运行环境。
docker 的一些常用命令
启动docker服务
service docker start
查看本地ddocker 镜像
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
minsongtao/debianv2 latest d01eb3b776f7 21 hours ago 1.408 GB
debian v1 7a36764c1caf 24 hours ago 1.408 GB
centos v1 4c7f2427fa92 24 hours ago 820 MB
minsongtao/debian v1 4c7f2427fa92 24 hours ago 820 MB
docker.io/php 5.6.3-fpm 374639be3833 2 years ago 403.7 MB
以一个docker 镜像启动一个docker容器并返回宿主机一个bash
[root@bogon ~]# docker run -i -t d01eb3b776f7 /bin/bash
root@e9ffd7e0ee50:/home/spide#
挂载目录 -v 选项除了可以创建卷,也可以挂载当前主机的一个目录到容器中。
docker run --name web -v /source/:/web -t -i ubuntu:14.04 /bin/bash
把宿主机的source目录挂载到容器web目录下
Volume 只有在下列情况下才能被删除:
- docker rm -v 删除容器时添加了 -v 选项
- docker run –rm 运行容器时添加了 –rm 选项
- 否则,会在 /var/lib/docker/vfs/dir 目录中遗留很多不明目录。
挂载宿主机已存在目录后,在容器内对其进行操作,报“Permission denied”。
可通过两种方式解决: 1.关闭selinux.
临时关闭:# setenforce 0 永久关闭:修改/etc/sysconfig/selinux文件,将SELINUX的值设置为disabled.
2.以特权方式启动容器 指定–privileged参数
如:# docker run -it –privileged=true -v /test:/soft centos /bin/bash
在容器中开启多个shell 窗口
使用docker start -> docker attach 窗口会进行同步显示, 接下来我们只在第一个窗口进行操作, 可以看到第一个窗口的操作同步到第二个窗口显示了.
docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器, 相当于多个窗口操作互不干扰, 这种方式相对更简单一些.
docker exec -it e9ffd7e0ee50 /bin/bash
查看本地的所有容器
[root@bogon ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9ffd7e0ee50 d01eb3b776f7 "/bin/bash" 3 minutes ago Exited (0) 3 seconds ago sharp_lalande
f407def58a5f 7a36764c1caf "/bin/bash" 21 hours ago Exited (0) 21 hours ago desperate_shirley
对容器做了一些修改,并将容器保存为一个镜像
docker commit f407def58a5f minsongtao/debianv2
将docker镜像 推送到docker hub
1.先登录
[root@bogon ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (minsongtao): minsongtao
Password:
Login Succeeded
2.将docker push到远端
docker commit f407def58a5f minsongtao/debianv2
docker镜像 的命名以自己的账户名开头
docker push minsongtao/debianv2
3.现在我们就可以在全球所有接入互联网的机器上直接通过命令
docker pull minsongtao/debianv2