安装Docker
curl -sSL https://get.daocloud.io/docker | sh
开机启动
sudo systemctl enable docker
配置国内镜像
vim /etc/docker/daemon.json
{ "registry-mirrors" : [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://cr.console.aliyun.com", "https://mirror.ccs.tencentyun.com" ] }
重启
sudo systemctl daemon-reload sudo systemctl restart docker
常用命令
https://hub.docker.com //镜像网站
docker pull mysql:5.7.41 //下载镜像 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d mysql:5.7.41 //创建容器 docker run -it --rm mysql:5.7.41 mysql -h172.17.0.3 -uroot -p //交互式登录容器 docker run --name some-nginx -d -p 8080:80 nginx:1.22
docker images //查看已下载的镜像 docker ps //查看容器状态 docker ps -a //查看所有容器状态 docker stop 容器ID或容器名 //停止容器
docker exec -it 容器ID或容器名 /bin/bash //进入交互模式
Docker网络
查看容器IP:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名
curl 172.17.0.2:8000 在桥接模式下,宿主机能直接访问容器的ip,容器之间也能相互访问
docker run -it --rm busybox:1.36.0-uclibc

docker network connect my-net mysql
docker network disconnect my-net mysql
docker run -it --rm --network my-net mysql:5.7.41 mysql -hsome-mysql -uroot -p
Docker挂载
docker run --name some-mysql -v /root/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro \
-v /root/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.41
创建卷,将绑定挂载改为卷挂载
docker volume create vol-my-data
docker run --name some-mysql-vol -v /root/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro \
-v vol-my-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.41
创建卷之后,将容器挂载到卷上,容器的数据将保存到卷中,即使删除容器,创建新的容器时重新挂载卷,卷中的配置能再次同步过来:
docker run --name ctfdServer -v ctfd-volume:/opt/CTFd/CTFd -d -p 18000:8000 ctfd/ctfd:3.5.1
容器的数据会保存到卷中,删除容器后,创建新的容器时挂载卷,能再次同步原有的数据到容器里。
docker system df #查看 Docker 的磁盘使用情况 docker volume prune #删除未使用的数据卷 docker network prune #删除没有使用过的网络 docker system prune #删除所有未使用过的资源 docker container prune #删除所有停止的容器 docker image prune -a #删除所有未使用过的镜像 docker container prune --filter "until=24h" #仅删除超过 24 小时的停止容器 du -h --max-depth=1,可以查看当前目录下各文件、文件夹的大小 du -sh 查看当前目录的总大小