Home Docker学习
Post
Cancel

Docker学习

docker原理

docker原理框架

在这里插入图片描述

生成镜像的两种方式

  1. 通过Dockerfile构建。 Dockerfile是一个用来构建镜像的文本文件,包含了一条条构建镜像所需的指令和说明,可参考Dockerfile文件详解。 通过docker build命令来从Dockerfile构建镜像,可参照Docker build 命令
    1
    
    docker build [OPTIONS] PATH | URL | -
    

    其中OPTIONS可选PATH/URL/-选其一,指定源。 示例

    1
    2
    
    $ docker build .   # 在当前路径下寻找Dockerfile来构建
    $ docker build -t name:tag . # 在当前路径下寻找Dockerfile来构建,并为构建的镜像设定名字name及标签tag
    
  2. 从Docker Hub上直接拉取

    Docker Hub上查找已有的镜像,然后拉取到本地:docker pull <用户名/镜像名>

配置docker

  • 安装docker官方文档
  • 将仓库网址改为国内的镜像站
    • 打开/etc/default/docker文件(需要sudo权限),在文件的底部加上一行
      1
      
        DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
      
    • 然后重启Docker服务
    1
    
      $ sudo service docker restart
    
  • 避免每次命令都输入sudo(官方文档):
    1
    2
    3
    4
    5
    
      # 1. Create the docker group.
      sudo groupadd docker
      # 2. Add your user to the docker group.
      sudo usermod -aG docker $USER
      # 3. Log out and log back in so that your group membership is re-evaluated.
    
  • 安装nvidia-docker官方文档

管理镜像与容器

镜像(image)

  • 列出本机的所有 image 文件:docker image ls
  • 删除 image 文件:docker rmi <imageName/ID>

容器(container)

  • 列出本机正在运行的容器:docker ps
  • 列出本机所有容器,包括终止运行的容器: docker ps -a
  • 终止容器运行:docker container stop <containerID>
  • 删除容器文件:docker rm <containerName/ID>
  • 导出容器:docker export <OPTIONS> CONTAINER
  • 导入容器:docker import <OPTIONS> file|URL|- [REPOSITORY[:TAG]]

运行镜像

对于需要使用GPU的程序,需要使用nvidia-docker run

通过docker run命令来运行镜像,可参考docker run

1
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

示例1 - 基础

1
2
3
4
docker run --name <container_name> -it <image_name> # 使用<image_name>镜像来生成一个容器,并为其命名为<image_name>
# -i, or  --interactive: 	Keep STDIN open even if not attached
# -t, or --tty: 	Allocate a pseudo-TTY
# The -it instructs Docker to allocate a pseudo-TTY connected to the container’s stdin; creating an interactive bash shell in the container

示例2 - Mount volume

1
docker run --name <container_name>  -v host_dir:docker_dir -it <image_name>    # 将本地文件夹host_dir"挂载到"容器的docker_dir下

比如

1
2
3
docker run --name <container_name>  -v ${PWD}:/work -it <image_name> # 将当前路径挂载在容器的/work目录下
# 进入生成的container后
ls # 即可在container中看到${PWD}中文件

其他

参考

网上真是好多docker的优秀教程啊。

Docker 入门教程 - 阮一峰的网络日志

Docker+VSCode配置属于自己的炼丹炉

Docker Volume入门用法详解

Docker卷(volume)的使用

Docker 实践简明指南

Docker入门-简书

This post is licensed under CC BY 4.0 by the author.

Ubuntu文件系统_硬盘挂载与卸载

一个论文笔记框架(Markdown格式)