Docker详解
一,安装
windows安装
1,下载
Docker Desktop下载链接
linux内核wsl 下载链接
2,打开任务管理器查看CPU虚拟化是否已经启用
3,在控制面板打开程序,然后点击启动或关闭windows功能,勾选Hyper-v,然后重启
如果进来没找到Hyper-v
桌面建一个Hyper-V.bat文件
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
4,安装
把docker安装到其他盘:
docker默认安装路径在C盘,并且无法修改,需要创建软连接修改
mklink /j "C:\Program Files\Docker" "D:\Docker"
双击运行Docker Desktop
docker修改镜像存放路径
- 打开 Docker 设置。
- 选择存储选项卡。
- 在「镜像和容器存储路径」下更改路径。
- 应用更改并重启 Docker 应用程序。
linux安装
1,一键安装
官方一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内 daocloud一键安装:
curl -sSL https://get.daocloud.io/docker | sh
2,手动安装
下载Docker相关依赖环境
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置Docker的镜像源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
阿里云镜像源:
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华大学镜像源:
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
Docker安装
提升安装软件速度
yum makecache fast
安装docker(docker-ce为社区免费版本)
sudo yum install -y docker-ce docker-ce-cli containerd.io
yum install -y docker-ce
3,Docker启动
sudo systemctl start docker
测速是否安装成功
# 拉取测试镜像
sudo docker pull hello-world
# 启动测试镜像
sudo docker run hello-world
二,配置
设置国内镜像地址:
Settings-Docker Engine中的末尾添加
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
三,使用
常用命令:
查看docker安装
docker ps 或者 ps -ef | grep docker
查看docker服务:
systemctl status docke
设置开启docker服务:
systemctl enable docker
启动docker服务:
systemctl start docker
重启docker服务
systemctl restart docker
查看mysql镜像
docker search nginx
pull镜像
docker pull nginx
查看当前已有的镜像
docker images
删除镜像
docker rmi nginx
查看正在运行的所有容器
docker ps
查看所有容器(包括未启动的)
docker ps -a
启动容器
docker run -p 80:80 --name nginx_test -v D:\zsh\nginx\conf.d\default.conf:/etc/nginx/conf.d/default.conf -v D:\zsh\nginx\html\:/usr/share/nginx/html/ -v D:\zsh\nginx\nginx.conf:/etc/nginx/nginx.conf -d nginx
进入容器:
docker exec -it nginx_test bash
停止容器
docker stop 容器ID/容器名
重启容器:
docker restart 容器ID/容器名
启动停止的容器:
docker start 容器ID/容器名
删除一个容器
docker rm -f 容器名/容器ID
删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
删除全部容器(谨慎操作)
docker rm -f $(docker ps -aq)
查看容器日志
docker logs -f -t --tail=100 容器名/容器ID
查看所有网络
docker network ls
查看指定网络的详细信息
docker nekwork inspect 网络名字NAME
发生容器启动不了之类的错误
查看最近30分钟的容器日志
docker logs --since 30m 容器i
查看容器完整信息:
docker ps -a --no-trunc
更换容器名
docker rename 容器ID/容器名 新容器名
获取容器/镜像的元数据(可用于查看容器的挂在目录等操作)
docker inspect 容器id
模版指令
{{ }} 语法用于处理模版指令,大括号外的任何字符都将直接输出。
查看指定容器的ip地址
“.” 表示“当前上下文”,大多数情况下表示了容器元数据的整个数据结构
docker inspect -f {{.Config.Hostname}} 容器名或容器id
根据容器名查看容器id
docker inspect -f {{.Config.Hostname}} 容器名
提交一个镜像
docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag
查看docker-compose.yml所在位置
locate docker-compose.yml
docker网络network
Docker方式下容器网络:
两种方式:
networks(常用)
links
查看所有网络
docker network ls
查看具体网络
docker network inspect 网络name
命令 将一个已经启动的容器添加到已有的网咯中
docker network connect 网咯名字NAME 容器名字NAME
切断容器连接的网络
docker network disconnect -f 容器名字
删除网络,前提是网络里没有活动的容器,有就要先切断容器连接网络
docker network rm 网络名字NAME
创建自定义网络
docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 mynet
查看是否在同一个网络下:
列出所有网络
docker network ls
查看指定网络
docker network inspect 网络name
进入一个容器,
docker exec -it 容器id /bin/bash
ping 另外一个容器的名字,是否ping的通,Ctrl + c 结束ping操作