约 469 个字 16 行代码 预计阅读时间 3 分钟 共被读过 次
Docker Cheat Sheet¶
安装¶
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
Bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker 命令¶
镜像相关¶
docker images列出本地镜像docker search <image>搜索镜像docker pull <image>拉取镜像docker rmi <image>删除镜像docker build -t <image> .从 Dockerfile 构建镜像,并打上 tag<image>docker export <image> > <file>.tar保存镜像为 tar 包docker import <file>.tar <image>从 tar 包导入镜像docker tag <image> <image>:<tag>给镜像打 tag(重命名)
容器相关¶
docker ps -a列出正在运行的容器docker run -it <image>运行镜像-d后台运行-p <host>:<container>端口映射-v <host>:<container>目录映射-e <key>=<value>环境变量--name <name>容器名--rm运行完后自动删除容器--network <network>指定网络docker start <container>启动容器docker restart <container>重启容器docker stop <container>停止容器docker rm <container>删除容器docker exec -it <container> /bin/bash进入容器docker cp ... ...在本地和容器之间复制文件(用法类似 scp)
网络相关¶
docker network ls列出网络docker network create <network>创建网络docker network connect <network> <container>将容器连接到网络docker network inspect <network>查看网络信息docker network rm <network>删除网络
仓库相关¶
docker login <url>连接 registrydocker login连接到 Docker Hubdocker login ghcr.io连接到 GitHub 的仓库,用户名是 GitHub 用户名,密码是 GitHub 生成的 token(ghp_ 开头)docker logout <url>断开 registrydocker push <image>推送镜像到 registry(会根据前缀自动选择 registry)docker pull <image>从 registry 拉取镜像
registry 镜像¶
可以利用 registry 镜像来自建私有 registry
docker pull registry:2拉取 registry 镜像- 需要挂载的目录
./auth:/auth:用户名和密码。在本地 auth 目录下执行docker run --entrypoint htpasswd registry:2.7.0 -Bbn <username> <password> > htpasswd生成文件./certs:/certs:SSL 证书,可以用 acme.sh 来签./registry:/var/lib/registry:registry 数据- 启动 registry:
Bash
docker run -itd -p 5000:5000 --restart=always --name registry \
-v ./certs:/certs \
-v ./auth:/auth \
-v ./registry:/var/lib/registry \
-e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.cer" \
-e "REGISTRY_HTTP_TLS_KEY=/certs/<domain>.key" \
-e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2
docker login <url>登录 registrydocker tag <image> <url>/<image>给镜像打上 registry 的 tagdocker push <url>/<image>推送镜像到 registry
Dockerfile¶
常用换源¶
Ubuntu 软件源¶
```plain text
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN sed -i s@/archive.ubuntu.com/@/<...>/@g /etc/apt/sources.listRUN apt-get clean
RUN apt-get update