文章目录
仓库
国内镜像仓库地址
修改方法见: 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