目录
docker镜像使用
1.列出镜像列表
docker images -a --all #列出所有镜像 -q --quiet #直显示镜像的id
各个选项说明:
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小
2.下载一个新的镜像(本地主机不存在)
docker pull ubuntu:13.10
注意:如果不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像
3.删除镜像
# 删除hello-world镜像 docker rmi hello-world
4.创建镜像
当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
(1)从已经创建的容器中更新镜像,并且提交这个镜像
(2)使用 Dockerfile 指令来创建一个新的镜像
5.更新镜像(方法一)
(1)docker run 创建一个容器
(2)在容器内安装需要的包或者使用 apt-get update 命令进行更新
(3)输入exit 退出容器
(4)提交容器副本,提交为镜像
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
各个参数说明:
-m: 提交的描述信息
-a: 指定镜像作者
e218edb10161:容器 ID
runoob/ubuntu:v2: 指定要创建的目标镜像名
(5)打包镜像
docker save ubuntu:v2 -o /home/your_images.tar
6.构建镜像(方法二)
(1) 编写Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
Dockerfile 指令解释:点此链接
(2)docker build 构建镜像
docker build -t runoob/centos:6.7 /home/docker
参数说明:
-t :指定要创建的目标镜像名
/home/docker :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
(3) 使用docker images 查看创建的镜像
7. 设置镜像标签
使用 docker tag 命令,为已有镜像添加一个新的标签
docker tag 860c279d2fec runoob/centos:dev
参数说明:
docker tag 镜像ID(这里是 860c279d2fec) 用户名/镜像源名(repository name)和新的标签名(tag)
8. 加载打包好的tar镜像文件
docker load -i -q my_images.tar
参数说明:
--input , -i : 指定导入的文件,代替 STDIN。
--quiet , -q : 精简输出信息。
9. 常用命令
docker version # 显示版本信息
docker info # 显示docker系统信息,包括镜像和容器的数量
docker 命令 --help # 帮助命令
帮助文档地址:https://docs.docker.com/reference/
Docker 容器使用
1.启动容器
docker run -it ubuntu /bin/bash nvidia-docker run -it ubuntu /bin/bash
参数说明:
- -i: 交互式操作。
- -t: 终端。
- ubuntu: ubuntu 镜像名称
- /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
docker run -it 镜像id 命令行
docker run -d --name nginx01 -p 3344:80 nginx
-d 后台运行
--name 给容器命名
-p 端口映射
docker run -it -v /home/ceshi:/home centos /bin/bash
-v 挂载数据卷
---privileged=True
2.查看所有的容器
docker ps -a
3.启动已停止的容器
docker start b750bbbcfd88
4.停止容器
docker stop <容器 ID>
5.删除容器
docker rm -f 1e560fca3906
docker和主机数据传输
1.将主机./RS-MapReduce目录拷贝到容器30026605dcfe的/home/cloudera目录下
docker cp RS-MapReduce 30026605dcfe:/home/cloudera
2.将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中
docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/