Docker安装
docker安装:官网安装参考
docker-compose安装:官网安装compsoe参考
我的仓库
阿里云docker容器仓库
- 使用参考:
version: "3.5"
services:
name:
# 使用镜像名称
image: python:3.9
# 容器名称,不能重复
container_name: name
# 自动重启
restart: always
# 容器内环境变量
environment:
- TZ=Asia/Shanghai
# 挂载目录
volumes:
- .:/root/
# 容器内工作目录
working_dir: /root/
# 容器内执行指令
command: sleep 24h
# 自定义网段,避免自动分配导致网段冲突
networks:
default:
name: linyq_default
ipam:
driver: default
config:
- subnet: 10.103.0.0/16
基操
一. docker常用命令
# 以非root用户执行docker
sudo chown linyq:linyq /var/run/docker.sock
# 删除所有容器
docker rm $(docker ps -aq)
# 构建镜像(注意最后的点)
docker build -f Dockerfile -t mycentos:0.1 .
# docker打包容器
docker commit 容器id 镜像名:镜像版本
docker save 镜像名:镜像版本 -o xxx.tar
docker load -i xxx.tar
# 运行容器
docker run -dit mycentos:0.1 /bin/bash
# 进入容器
docker exec -it xxxxxx /bin/bash
# 从容器内拷贝文件到linux主机上
docker cp eaac94ef6926:/home/test.txt /root/test.txt
# 从宿主机拷贝文件到容器内
docker cp test.txt eaac94ef6926:/home/test.txt
# 查看磁盘剩余空间
df -h
# 查看当前目录总大小
du -sh
二. docker-compose
常用命令
docker-compose ps
docker-compose down
docker-compose up -d
docker-compose ps
docker-compose exec tensor bash
docker-compose logs -f tensor
docker-compose网络冲突问题
> 参考: https://www.jianshu.com/p/b039fccf37c9
docker网络配置
常用命令 参考
- 查看路由表
root@linyq:~/demo/test# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-fb0ff4806d21
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-de35b4c2b27a
- 查看docker网络
root@linyq:~/demo/test# docker network ls
NETWORK ID NAME DRIVER SCOPE
f7b87d15b81c bridge bridge local
18f07eaebd76 code_default bridge local
a22c82ca3b35 conda_default bridge local
2bc6c6b54c8a crow-c_default bridge local
f7f845b39a5a host host local
- 查看docker网络详情
root@linyq:~/demo/test# docker network inspect 2bc6c6b54c8a
[
{
"Name": "crow-c_default",
"Id": "2bc6c6b54c8a2c523437b68df47ba4676a9a35081cf6ee281f602f41fff79d09",
"Created": "2022-02-16T16:14:46.520328155+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "192.168.16.0/20",
"Gateway": "192.168.16.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "crow-c",
"com.docker.compose.version": "1.29.2"
}
}
]
- 删除所有未使用的网络. 示例:
docker network prune
ps: -f 强制删除,不提供任何确认情况下删除.
容器仓库
- 登录阿里云Docker Registry
docker login --username=高能的逗逼 registry.cn-hangzhou.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。
-
从Registry中拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/linyqh/my-docker:[镜像版本号]
-
将镜像推送到Registry
docker login --username=高能的逗逼 registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/linyqh/my-docker:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/linyqh/my-docker:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。 -
选择合适的镜像仓库地址 从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。 -
示例 使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。
docker images
docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。
docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816