栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker常用指令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker常用指令

概念介绍

1、Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。[1]
2、镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Docker Hello World
# 载入开源镜像,比如ubuntu
1、docker pull ubuntu

2、docker run ubuntu:15.10 /bin/echo "Hello world"
参数解析:
- docker: Docker的二进制执行文件
- run: 与前面的docker组合来运行一个容器
- ubuntu:15.10: 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker就会从镜像仓库Docker Hub中下载公共镜像,15.10是版本信息。
- /bin/echo "Hello world": 在启动容器时同步执行的命令

3、docker run -i -t ubuntu:15.10 /bin/bash
参数解析:
- -t: 在新容器内指定一个终端
- -i: 允许你和容器内的标准输入(STDIN)进行交互
- -i和-t可以简写成-it
镜像和容器的使用
# 列出本地主机上的所有镜像
1、docker images

# 使用镜像启动容器
2、docker run -it image_name /bin/bash
执行完上面这条命令后会进入一个终端,输入exit回车或者ctrl+D可以退出容器

# 查看正在运行的容器信息(ConTAINER ID是容器的唯一ID)
3、docker ps

# 查看所有已创建的容器信息,包括已创建的和已停止的
4、docker ps -a

# 停止特定容器的运行
5、docker stop ConTAINER ID

# 运行已停止的特定容器
6、docker start ConTAINER ID

# 重启特定容器
7、docker restart ConTAINER ID

8、docker run -it -d ubuntu:15.10 /bin/bash
参数解析:
- -d: 默认不会进入容器,容器在后台运行
- -it和-d可以简写成-itd

9、在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
 - docker attach ConTAINER ID:用这个命令进入后再退出容器,会导致容器的停止
 - docker exec ConTAINER ID:推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

# 导出容器快照到本地文件image_name.tar
10、docker export ConTAINER ID > ./image_name.tar

# 从容器快照文件image_name.tar中再导入为镜像
11、cat ./image_name.tar | docker import - image_name

# 删除容器
12、docker rm -f ConTAINER ID

# 删除镜像
13、docker rmi image_name

# 清除所有停止状态的容器
14、docker container prune

# 查看容器端口的映射情况
15、docker port ConTAINER ID

# docker挂载本地目录[1]
# 如果container_dir不存在,会自动在容器里创建目录,image表示镜像
16、docker run -it -v /localhost_dir:/container_dir image_name /bin/bash
参数解析:
- -v:挂载主机的目录到容器的目录上

# docker挂载多个本地目录
17、docker run -it --name container_name -v /localhost_dir1:/container_dir1 -v /localhost_dir2:/container_dir2 image_name /bin/bash

# docker指定端口映射
18、docker run -it -p 10023:22 -v /data1:/data1 --name container_name image_name /bin/bash
参数解析:
- -p:端口映射,一般是主机上某个端口号映射到22端口(ssh的端口号)

# 在docker中使用NVIDIA显卡
19、docker run -it --gpus all image_name /bin/bash


创建镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

1、从已经创建的容器中更新镜像,并且提交这个镜像
2、使用 Dockerfile 指令来创建一个新的镜像

1、从已经创建的容器中更新镜像,并且提交这个镜像

# 在运行的容器内更新
1、apt-get update

2、exit退出

# 提交容器副本
3、docker commit -m="has update" -a="Jordan"  image_name:v2
参数解析:
- -m: 提价的描述信息
- -a: 指定镜像作者

2、使用 Dockerfile 指令来创建一个新的镜像

# 需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
docker build -t image_name .
参数解析:
- -t: 指定要创建的目标镜像名
- .: Dockerfile文件所在目录,可以指定Dockerfile的绝对路径
参考资料

[1] Docker菜鸟教程
[2] 详解Docker挂载本地目录及实现文件共享

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号