Docker / Podman 基础操作

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>

容器管理

使用镜像创建容器 - docker run命令

docker run [参数] <镜像名>

常用参数:

  • --name xxx :给新容器命名为“xxx”
  • -d :后台运行
  • -i :进行交互式操作
  • -t :分配一个伪终端,一般与i一同使用
  • -p xxxx:xxxx :指定端口映射,格式为“主机端口:容器端口”
  • -e xxx :设置环境变量
  • -v xx:xx :挂载数据卷、主机目录
  • --mount xx=xx,xx=xx :同上

样例:

  • MySQL 5
docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--name mysql \
mysql:5
  • PostgreSQL
docker run -d \
-p 5432:5432 \
-e POSTGRES_PASSWORD=123456 \
--name postgresql \
postgres:alpine

之后操作容器一般使用<容器名>或<容器ID>。容器名可通过--namedocker run时指定,也可由系统自动分配;容器ID同镜像ID一样,最少仅需开头3、4位,能分辨即可。

容器的管理 - 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)进行方便的管理。

有些创建的容器创建后想修改,但是上面通过 CLI 工具创建后是不能修改的,这时也可以通过这个完成。虽然修归后重新部署实际还是把容器删掉再建一个。

它使用一个 docker-compose.yml 文件作为配置文件。使用时只需在该文件所在目录执行 docker compose 相关之类就可进行容器(群)的建立、启动、停止等操作。

功能 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