Docker入门指南:基础命令、操作容器与镜像管理,附存储、网络及Compose应用

Docker命令

下载镜像

命令命令示例
docker search 镜像名检索镜像docker search nginx
docker pull 镜像名下载镜像docker pull nginx
docker images / docker image ls查看镜像列表/
docker rmi 镜像名/IMAGE ID删除指定镜像docker rmi nginx / docker rmi e784f4560448

镜像名:标签:版本(不写版本默认最新)

启动容器

命令命令示例
docker run 镜像名运行一个新容器docker run nginx
docker ps [-a]查看/查看所有 容器/
docker stop 容器名/容器ID停止指定容器docker stop keen_blackwell
docker start 容器名/容器ID启动指定容器docker start 592
docker restart 容器名/容器ID重启指定容器docker restart 592
docker stats 容器名/容器ID查看容器资源占用情况docker stats 592
docker logs 容器名/容器ID查看容器日志docker logs 592
docker exec -it 容器名/容器ID /bin/bash以交互模式进入容器内部docker exec -it mynginx /bin/bash
docker rm [-f] 容器名/容器ID(强制)删除指定容器docker rm [-f] 592

容器ID可不写全,只要能做到唯一确定即可。
[参数]:可写参数

参数详解

image.png

参数项定义举例
CONTAINER ID容器ID(唯一)eef32e954a0f
COMMAND使用的镜像名nginx
CREATED当前容器的启动命令“/docker-entrypoint.…”
STATUS启动时间21 seconds ago
PORTS启动状态(UP:启动;Exited (0):停止)Up 20 seconds
NAMES占用端口号80/tcp
IMAGE应用容器名(随机)boring_murdock

命令详解

docker run [参数] 镜像名
常用参数:

  • -d:后台启动;
  • --name:自定义容器名;
  • -p端口映射,例如:-p 88:80,其中88为外部端口,80为内部端口;
  • -v:目录挂载,例如:-v /app/nghtml:/usr/share/nginx/html,其中冒号前为外部地址,后为内部地址;
  • -e:设置环境变量
  • --network:指定网络

如果想使用更多或查看可添加的参数,可以在命令结尾处添加--help调出命令文档,
例如,使用docker run --help即可调出docker run的详细语法和参数

image.png

保存镜像

命令作用示例
docker commit -m "描述信息" 容器名/容器ID 新镜像名提交容器变化打成一个新的镜像docker commit -m “update index.html” mynginx mynginx:v1.0
docker save -o 文件名.tar 镜像名保存镜像为指定文件docker save -o mynginx.tar mynginx:v1.0
docker load -i 指定tar包名加载镜像docker load -i mynginx.tar

分享社区

命令作用示例
docker login登录 docker hub/
docker tag 原镜像名 新镜像名重新给镜像打标签docker tag mynginx:v1.0 leifengyang/mynginx:v1.0
docker push 镜像名推送镜像docker push leifengyang/mynginx:v1.0

$(docker命令):动态调用命令。

Docker存储

两种方式,注意区分:

  • 目录挂载: -v /app/nghtml:/usr/share/nginx/html
  • 卷映射:-v ngconf:/etc/nginx

示例代码:

docker run -d -p 99:80 \
-v /app/nghtml:/usr/share/nginx/html \
-v ngconf:/etc/nginx \
--name app03 \
nginx

卷映射:-v ngconf:/etc/nginx,其中初始化以内部文件为准,且里外都可以修改
卷存储位置:/var/lib/docker/volumes/
docker volume 卷操作
docker volume 1s 列出所有卷

Docker网络

创建自定义网络,实现主机名作为稳定域名访问。

命令作用示例
docker network create 网络名自定义网络docker network create mynet
docker run --network 自定义网络名 镜像名运行容器并使该容器加入指定网络docker run --network mynet nginx

docker为每个容器分配唯一ip,使用容器ip+容器端口可以互相访问
ip由于各种原因可能会变化

Docker Compose

在日常使用中,我们往往不止会启用一个镜像,如果每次都需要手动去依次开启镜像,明显效率低下。
使用Compose,可以通过YAML文件来配置应用程序的服务,然后使用单个命令即可创建并启动所有服务。

常用命令:

命令作用示例
docker compose -f 指定compose文件名.yaml up -d后台启动指定 compose.yaml 文件docker compose -f compose.yaml up -d
docker compose -f 指定compose文件名.yaml down关闭指定 compose.yaml 文件docker compose -f compose.yaml down

具体语法详见官方参考:https://docs.docker.com/compose/compose-file/

示例:

name: myblog
services:
  mysql:
    container_name: mysql
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=wordpress
    volumes:
      - mysql-data:/var/lib/mysql
      - /app/myconf:/etc/mysql/conf.d
    restart: always
    networks:
      - blog

  wordpress:
    image: wordpress
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: 123456
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    restart: always
    networks:
      - blog
    depends_on:
      - mysql

volumes:
  mysql-data:
  wordpress:

networks:
  blog:

特性:

  • 增量更新
    • 修改 Docker Compose 文件。重新启动应用。只会触发修改项的重新启动。
  • 数据不删
    • 默认就算down了容器,所有挂载的卷不会被移除。比较安全

Dockerfile

官方文档:https://docs.docker.com/reference/dockerfile/

常见指令作用
FROM指定镜像基础环境
RUN运行自定义命令
CMD容器启动命令或参数
LABEL自定义标签
EXPOSE指定暴露端口
ENV环境变量
ADD添加文件到镜像
COPY复制文件到镜像
ENTRYPOINT容器固定启动命令
VOLUME数据卷
USER指定用户和用户组
WORKDIR指定默认工作目录
ARG指定构建参数

推荐资料:

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值