用户工具

站点工具


linux:docker

Docker

Docker is a utility to pack, ship and run any application as a lightweight container.

Installation

Add current user to docker group:

sudo gpasswd -a [user] docker
newgrp docker
 
docker info  # test its working

配置国内加速镜像

对于使用 systemd 的系统,编辑/新建 /etc/docker/daemon.json 文件:

daemon.json
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

重启服务器后生效,使用 docker info 可验证是否设置成功。

Usage

Image

参考文章:https://yeasy.gitbooks.io/docker_practice/content/image

获取 image:

docker pull <img-name>:<tag>

列出所有 images:

docker image ls

列出 images 体积:

docker system df

删除 image:

docker image rm <image-id> or <name>:<tag>

批量删除 <none> 的 Docker image:

docker image prune

组合技巧

比如,我们需要删除所有仓库名为 redis 的镜像:

docker image rm $(docker image ls -q redis)

或者删除所有在 mongo:3.2 之前的镜像:

docker image rm $(docker image ls -q -f before=mongo:3.2)

Container

docker run

Options:

  • -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
  • -i 让容器的标准输入保持打开
  • –rm 退出后自动删除该 container
  • -d 守护态允许(与 -it 选项冲突)

操作容器状态(启动、终止和重启)

docker container start
 
docker container stop
 
docker container restart

进入后台运行中的容器

docker exec -it <container-hash> bash

如果从这个 stdin 中 exit,不会导致容器的停止。

使用 docker attach 命令进入容器,退出时会终止容器。

删除 container

  • docker container rm <name-of-container> 删除一个处于终止状态的容器
  • docker container prune 清理所有处于终止状态的容器

Trick

alpine

Configurate Chinese mirror repositories:

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
linux/docker.txt · 最后更改: 2023/12/03 10:24 由 127.0.0.1