Docker

发布于:2024-12-20 ⋅ 阅读:(10) ⋅ 点赞:(0)

仓库

国内镜像仓库地址
修改方法见: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

  • 科大镜像:https://docker.mirrors.ustc.edu.cn/
  • 网易:https://hub-mirror.c.163.com/
  • 阿里云:https://<去Hub地址查自己的id>.mirror.aliyuncs.com(Hub地址 https://cr.console.aliyun.com/cn-hangzhou/instances/images)
  • 七牛云加速器:https://reg-mirror.qiniu.com

容器核心组件

  • Docker: 是一组用于在您的笔记本电脑上或跨多个服务器上创建和运行容器的工具。
  • Dockerfile: 构建镜像+启动容器
  • Docker-Compose: 启动容器集群,只能管理当前主机上的Docker集群
  • Docker Swarm: 是一种容器部署和管理工具,可跨服务器,docker公司开发
  • Kubernetes: 是一种容器部署和管理工具,可跨服务器,kubernetes公司开发,1.24版本开始放弃docker的支持

网络模式

  • bridge: 新建一个子网,每个容器都有自己的ip,相当于vmware中的Nat模式
  • host: 使用主机的ip:port,同主机完全一致
  • container: 指定一个容器,与其进行host模式
  • none: 关闭容器的网络功能

挂载方式

  • 容器间挂载: 在主容器Dockerfile中的VOLUME定义,启动一个容器后由其它容器发起挂在
    docker run --volumes-from from_container_name
  • 容器与主机: 容器启动时指定要挂载的主机目录 -v 主机目录:容器目录 更推荐这种方式,文件放在主机中,不易丢失

Docker常用指令

描述 指令
登陆仓库 docker login --username=15210543581 registry.cn-hangzhou.aliyuncs.com
登出仓库 docker logout
查image docker search image_name
拉image docker pull image_name:version
推image docker push image_name:version
导出镜像tar docker save -o image_name.tar image_name:latest
导出容器tar docker export -o image_name.tar container_id
导入镜像tar docker load -i image_name.tar
导入镜像tar docker import image_name.tar image_name:latest
提交容器到镜像 docker commit container_id image_name:latest
tag重命名 docker tag image_name:15.10 image_name:v3
构建镜像 docker build -t new_image:v1 -f /root/workdir/project/docker/Dockerfile .
构建镜像(参数) docker build -t local_image:node --build-arg tag_name=node .
构建镜像(缓存) docker build -t local_image:node --no-cache .
启动容器(对话) docker run -it -p 3000:3000 --name container_name image_name
启动容器(后台) docker run -itd -p 3000:3000 --name container_name image_name
启动容器(临时) docker run -itd -p 3000:3000 --rm --name container_name image_name
启动容器(空间) docker run -itd -p 3000:3000 -w /usr/src/workdir --name container_name image_name
启动容器(网络) docker run -itd --network bridge -p 3000:3000 --rm --name container_name image_name
启动容器(挂载) docker run -itd --network bridge -p 3000:3000 --rm --name container_name -v $PWD/workdir:/usr/src/workdir image_name
启动容器(挂载) docker run -itd --network bridge -p 3000:3000 --rm --name container_name --volumes-from from_container_name image_name
启动容器(指令) docker run -itd --network bridge -p 3000:3000 --rm --name container_name -c dev image_name
启动容器(demo) docker run -it --rm --name golang -v $PWD/nerdctl:/usr/src/nerdctl -w /usr/src/nerdctl golang:latest
进入容器终端 docker exec -it 44eb15768e05 /bin/bash
进入容器终端 docker attach 2b1b7a428627
docker进程 docker ps -a
start容器 docker start 44eb15768e05
start容器 docker restart 44eb15768e05
stop容器 docker stop 44eb15768e05
kill容器 docker kill 44eb15768e05
文件传输 docker cp ~/Desktop/原理.jpg de7608a76f9c:/app
查看端口 docker port de7608a76f9c
查看版本 docker version
查看注册地址等 docker info
查看进程 docker top 44eb15768e05
主机日志 cat /var/log/syslog
查看日志(容器) docker logs -f 44eb15768e05
查看详情(容器) docker inspect 567e349c860f
容器状态(容器) docker container stats 44eb15768e05
容器列表 docker container ls -a
删除容器 docker rm -f container_id
镜像列表 docker images
删除镜像 docker rmi -f image_id
网络组 docker network ls
网络组详情 docker network inspect da9038f37d18
创建连接 docker network create -d bridge test-net
启动容器 docker run -it -p 3000:3000 --name container_name image_name --network test-net

Compose常用指令

描述 指令
拉取镜像 docker compose pull service_name
构建镜像 --build-arg:指定args --no-cache:不使用缓存镜像 docker compose build --build-arg tag_name=node --force-rm
构建并启动 -d:后台 docker compose up -d service_name service_name2
如果有已存在的镜像则重新构建 docker compose up --build -d service_name service_name2
停止对应容器,不加service_name 则全部停止 docker compose stop service_name service_name2
开启对应容器,不加service_name 则全部开启 docker compose start service_name service_name2
开启对应容器,不加service_name 则全部开启 docker compose restart service_name service_name2
停止并删除所有容器 --rmi all:删除所有相关images及networks -v 删除volume docker compose down --rmi all -v
查看log docker compose logs
展示所有容器 docker compose ps -a
进入某个容器 docker compose exec service_name bash

代码

以下是一个简单的web项目demo
https://github.com/yuzhou152/docker-web.git


网站公告

今日签到

点亮在社区的每一天
去签到