美文网首页
[Docker] 简介&常用命令

[Docker] 简介&常用命令

作者: nlpming | 来源:发表于2021-12-10 20:34 被阅读0次

1. Docker简介

Docker 包括三个基本概念:

  • 镜像(Image): Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • 容器(Container): 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository): 仓库(Repository)类似Git的远程仓库,集中存放镜像文件。
docker简介.png

1.1 Docker安装

基于阿里云安装docker:https://developer.aliyun.com/article/110806

1.2 Docker 配置源

# 1. 修改配置文件 vim /etc/docker/daemon.json
{
 "registry-mirrors" : [
   "https://mirror.ccs.tencentyun.com",
   "http://registry.docker-cn.com",
   "http://docker.mirrors.ustc.edu.cn",
   "http://hub-mirror.c.163.com"
 ],
 "insecure-registries" : [
   "registry.docker-cn.com",
   "docker.mirrors.ustc.edu.cn"
 ],
 "debug" : true,
 "experimental" : true
}

# 2. 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

# 3. 查看是否修改成功
sudo docker info

2. Docker常用命令

  • 镜像相关命令
docker images  # 查看所有的镜像
docker search xxx # 搜索命令
docker pull xxx[:tag]  # 下载镜像,tag表示版本号
docker rmi xxx # 删除镜像
  • 容器命令
docker run [可选] imageid # 启动容器
docker run -it xxx /bin/bash  # 启动并使用交互式方式运行
(1) -d  # 后台运行
(2) --name # 容器命名
(3) -p 3344:80 # 暴露端口

# --- 退出容器 ---
exit # 关闭并退出容器命令
ctrl + p + q # 推出不关闭容器

# --- 查看运行的容器 ---
docker ps # 列出当前正在运行的容器
docker ps -a # 查看曾今运行过的容器

docker rm xxx # 删除容器
docker start xxx # 启动曾今关闭的容器
docker restart xxx # 重启容器
docker kill xxx # 强制停止容器

 docker attach [容器ID]  # 进入容器,当前打开的终端,不会启动新的进程;
 docker exec -it [容器ID] [command] # 在容器中执行相关命令,进入容器开启一个新的终端;

docker logs [容器ID] # 查看容器日志
docker top [容器ID] # 查看容器内部的进程id
docker inspect [容器ID] # 查看docker信息

docker cp 容器id:容器路径 主机路径  # 从容器内拷贝出来,推出容器进入主机执行命令

docker stats # 查看容器cpu状态

# --- 提交容器 ---
docker commit -a="作者" -m="xxx"  镜像名:[镜像版本号]
docker常用指令.png

3. Docker容器卷

# === 命令行方式 ===
docker run -it -v 主机目录:容器目录 镜像名 执行命令 

# === 数据卷 ===
docker volume ls # 查看所有的卷
docker volume inspect 卷名 # 查看卷的详细信息

4. Dockerfile

  • 主要作用用来构建docker镜像;命令参数脚本。
  • 构建步骤:
    (1)编写dockerfile;
    (2)docker build 构建一个镜像;docker build -f dockerfile文件名 -t 镜像名:tag 生成路径
    (3)docker run 运行镜像;
    (4)docker push 发布镜像(Docker Hub或者阿里云);
  • dockerfile常用指令
指令 含义
FROM 构建新镜像,基于哪个镜像;
MAINTAINER 镜像维护者的姓名 + 邮箱;
RUN 构建镜像时运行的shell命令;
ADD 步骤:tomcat镜像,添加tomcat压缩包;
WORKDIR 镜像工作目录;
VOLUME 挂载目录;
EPOSE 声明容器暴露的端口;
CMD 指定容器启动的时候需要运行的命令,只有最后一个生效,命令会被替换;
ENTRYPOINT 指定容器运行的命令;可以追加命令。
COPY 将文件拷贝到镜像中;
ENV 构建镜像的时候设置环境变量;
Dockerfile常用命令.png

4.1 Dockerfile例子

例子:https://github.com/komljen/dockerfile-examples

image.png

4.2 发布镜像

# 登录dockerhub账号:
docker login -u xxx -p xxx
# push镜像
docker push 镜像名:tag

4.3 Docker流程总结

Docker流程总结.png

5. 基于docker搭建深度学习环境

  • 基于docker + nvidia-docker + tensorflow 搭建深度学习环境;

1. 安装docker
参考:https://developer.aliyun.com/article/110806
2. 安装nvidia-docker(需要确保安装了Nvidia驱动)
参考:https://github.com/NVIDIA/nvidia-docker
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
3. 安装tensorflow
参考:https://www.tensorflow.org/install/docker?hl=zh-cn
运行tensorflow镜像:sudo docker run --gpus all -v /home/czm/Public:/home/czm/Public -it zhiming/tensorflow:tf1.12-py3.5-cuda9.0 bash

参考文档

相关文章

网友评论

      本文标题:[Docker] 简介&常用命令

      本文链接:https://www.haomeiwen.com/subject/jigqfrtx.html