跳转至

Docker笔记

Docker中文教程。

1 简介

Docker是一种容器技术,是轻量级的“虚拟机”,可以为每个应用配置隔离的环境。


2 下载

官方下载指南。

首先配置好docker的apt源:

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

然后通过apt进行安装

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker用于Linux系统,Windows无法直接安装使用,需要安装Docker Desktop之后才能运行,下载链接见官网。


3 重要概念

  • docker文档。用于更方便地创建镜像。
  • 镜像。模板,可以通过一个镜像创建很多个Container(容器),每个容器都是独立运行的,相互之间不影响。
  • 容器。从Image创建的运行时环境。

4 常用指令

将用户添加到docker用户组

sudo usermod -aG docker <username>

配置之后,在使用docker指令时无需再sudo(新建终端生效)。

启动

docker run <container> -d

此处的-d表示在后台运行。

停止

docker container stop

删除

docker container rm <id>
docker container prune

查看启动的docker容器进程

docker ps

或者查看所有的容器进程:

docker ps -a

查看本地有的Images

docker images ls

参数解析:

~$ docker image rm hello-world:latest 
Untagged: hello-world:latest
Deleted: sha256:5dd0d3e6e255913fc30f90b9f2b1d359cc2cbdb48090cc4b65f1676e203243cc
这里的untagged是解绑名称。因为同一个镜像可能绑定不同的名称,只有当所有的名称都被解绑之后,才会显示deleted

删除某个本地镜像

docker image rm <image_name>

5 Docker Compose

Docker Compose可以让多个Container进行交互。

创建一个Compose容器

docker compose -f ../config.yaml up -d

这里的-d表示deamon,守护进程,后台运行

启动Docker Compose创建的容器

docker compose start <single container id>
docker -f ../config.yaml start
docker compose start

stop之后可以通过start重新启动。

停止Docker Compose创建的容器

docker compose stop <single container id>
docker -f ../config.yaml stop
docker compose stop

stop是暂停,修改过的的数据依然在。

删除Docker Compose创建的容器

docker compose down <single container id>
docker -f ../config.yaml down
docker compose down

down是删除容器,所有的数据都会被清除。