:four_leaf_clover:碎碎念:four_leaf_clover:
Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。
:cherry_blossom:唠嗑QQ群兔叽的魔术工房 (942848525)
:star:B站账号杨丝儿今天也在科学修仙(UP主跨站求个关注)


:star2:docker中容器和镜像的关系

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

2022-01-08 15-13-16 的屏幕截图


:star2:镜像操作

1
2
3
4
5
6
7
8
9
10
11
12
13
# 存在有Dockerfile的docker文件夹
docker build ./docker

# 查看所有镜像
docker images

# 希望修改仓库名称
# 可以采用复制镜像后重命名的方式
docker tag <旧名>:<旧标签> <新名>:<新标签>
# 或者直接镜像命名的方式
docker tag <ID> <新名>:<新标签>
# 然后删除之前的镜像
docker rmi <旧名>

:star2:容器操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 创建容器
docker run [--name <容器名>] <镜像名|镜像ID>[:<标签>]
# 这里如果不指明标签,会默认标签为"latest"
# 如果不是常常需要启动关闭的容器,要不要命名都不重要。

# 查看全部容器
docker container ls [--all]

# 开启或停止的容器
docker start|stop <容器名>

# 删除已经停止的容器
docker rm <容器名>

# 在容器内启动一个终端,执行任务
docker exec -it <容器名> sh

:star2:补充

1
2
3
4
5
6
7
8
9
10
11
12
# 如果权限不够可以使用sudo,也可以采用
sudo -i
# 或者把当前用户添加到docker用户组
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组

# docker run 有很多内容,比较有帮助的如下:
# 启动一个后台容器
docker run -d [--name <容器名>] <镜像名|镜像ID>[:<标签>] [<指令>]
# 启动一个容器,并在前台显示其终端输出
docker run --rm -it ···

:star2:参考

docker

Manage Docker containers and images.
Some subcommands such as docker run have their own usage documentation.
More information: https://docs.docker.com/engine/reference/commandline/cli/.

  • List all docker containers (running and stopped):
    docker ps --all

  • Start a container from an image, with a custom name:
    docker run --name container_name image

  • Start or stop an existing container:
    docker start|stop container_name

  • Pull an image from a docker registry:
    docker pull image

  • Display the list of already downloaded images:
    docker images

  • Open a shell inside a running container:
    docker exec -it container_name sh

  • Remove a stopped container:
    docker rm container_name

  • Fetch and follow the logs of a container:
    docker logs -f container_name

docker run

Run a command in a new Docker container.
More information: https://docs.docker.com/engine/reference/commandline/run/.

  • Run command in a new container from a tagged image:
    docker run image:tag command

  • Run command in a new container in background and display its ID:
    docker run -d image command

  • Run command in a one-off container in interactive mode and pseudo-TTY:
    docker run --rm -it image command

  • Run command in a new container with passed environment variables:
    docker run -e 'variable=value' -e variable image command

  • Run command in a new container with bind mounted volumes:
    docker run -v path/to/host_path:path/to/container_path image command

  • Run command in a new container with published ports:
    docker run -p host_port:container_port image command

  • Run command in a new container overwriting the entrypoint of the image:
    docker run --entrypoint command image

  • Run command in a new container connecting it to a network:
    docker run --network network image