docker 入门笔记

2017/06/11 Linux Docker

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

Search

    Post Directory