Docker / Podman 基础操作
Docker 镜像和容器的基础操作。Podman 用法与其相同,将docker替换为podman即可。
镜像管理
| 功能 | 命令 | 说明 |
|---|---|---|
| 查找镜像 | docker search <关键字> |
|
| 下载镜像 | docker pull <镜像名> |
镜像名 = 镜像仓库名(用户名/软件名):tag,用户名为library时会省略,tag为latest时可省略 |
| 查看镜像 | docker image ls |
列出的镜像ID是镜像短ID,镜像ID一般使用时取开头3、4位,能分辨即可。 |
| 删除镜像 | docker image rm <镜像名>/<镜像 ID> |
别名:docker rmi <镜像名>/<镜像 ID> |
容器管理
操作容器一般使用<容器名>或<容器ID>。容器名可通过--name在docker run时指定,也可由系统自动分配;容器ID同镜像ID一样,仅需开头3、4位,能分辨即可。
使用镜像创建容器 - docker run命令
docker run [参数] <镜像名>docker run 创建容器时如果本地没有镜像,docker 会自动去拉取镜像,可以免去 docker pull 这一步。
常用参数:
--name xxx:给新容器命名为“xxx”-d:后台运行-i:进行交互式操作-t:分配一个伪终端,一般与i一同使用-p xxxx:xxxx:指定端口映射,格式为“主机端口:容器端口”-e xxx:设置环境变量-v xx:xx:挂载数据卷、主机目录--mount xx=xx,xx=xx:同上
样例:
- MySQL
docker run -d \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=123456 \ --name mysql \ mysql
- PostgreSQL
docker run -d \ -p 5432:5432 \ -e POSTGRES_PASSWORD=123456 \ --name postgresql \ postgres:alpine
容器的管理 - docker container命令
docker container的常用命令一般可以省略container,如docker container start可以写为docker start
| 功能 | docker container 命令 | 别名 |
|---|---|---|
| 查看容器 | docker container ps |
docker ps,常加-a查看所有容器还有个 docker ls也可以 |
| 启动容器 | docker container start <容器名>/<容器ID> |
docker start <容器名>/<容器ID> |
| 重启容器 | docker container restart <容器名>/<容器ID> |
docker restart <容器名>/<容器ID> |
| 停止容器 | docker container stop <容器名>/<容器ID> |
docker stop <容器名>/<容器ID> |
| 删除容器 | docker container rm <容器名>/<容器ID> |
docker rm <容器名>/<容器ID> |
| 查看日志 | docker container logs <容器名>/<容器ID> |
docker logs <容器名>/<容器ID> |
进入后台运行的容器
docker attach <容器名>/<容器ID>或
docker exec <容器名>/<容器ID> 命令-it <容器名>/<容器ID> bash:进入容器并启动bash进行交互式操作
推荐exec,退出容器不会停止。
Compose 管理
很多情况下我们项目会需要多个相互配合的容器组成一个容器组;或者需要进行批量部署。这时继续通过上面的方法就有些费力,可以通过 Docker Compose(或者 Podman Compose)进行方便的管理。
有些创建的容器创建后想修改,这时也可以通过这个完成。虽然重新部署实际还是把容器删掉再建一个。
它使用一个 compose.yaml 文件作为配置文件。使用时只需在该文件所在目录执行 docker compose 相关指令就可进行容器组的建立、启动、停止等操作。
有些人将这个配置文件命名为
docker-compose.yml,这是一种过时但仍兼容的写法。详细请看 https://docs.docker.com/compose/compose-application-model/#the-compose-file
| 功能 | docker compose 命令 | 备注 |
|---|---|---|
| 查看容器 | docker compose ps |
还有 docker compose ls |
| 建立容器 | docker compose up |
常加 -d,后台运行 |
| 启动容器 | docker compose start |
|
| 重启容器 | docker compose restart |
|
| 停止容器 | docker compose stop |
|
| 删除容器 | docker compose down |
|
| 查看日志 | docker compose logs |