在 linux 中启动 docker
sudo systemctl start docker
搜索镜像
docker search mysql
下载镜像
docker pull mysql
查看运行中的容器
docker ps
-a表示所有
查看本地镜像
docker images
# 或者
docker image ls
用 docker 跑一个 mysql 服务
docker run -p 3306:3306 --name uccs_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
参数-p设置端口,--name取名,-e MYSQL_ROOT_PASSWORD=123456设置账号为root,密码为123456,-d表示作为一个守护进程在后台运行。
删除所有停止的容器
docker container prune
停止、启动、杀死、重启一个容器
docker stop <container_name/container_id>
docker start <container_name/container_id>
docker kill <container_name/container_id>
docker restart <container_name/container_id>
删除 images
# 删除某个 image
docker rmi -f image_id
# 删除所有 image
docker rmi -f $(docker images -aq)
查看运行的容器
docker ps
# 或者
docker container ls
查看所有容器
docker ps -a
查看所有容器的 ID
docker ps -aq
删除容器
docker rm -f <container_id>
删除所有容器
docker rm -f $(docker ps -aq)
删除所有已退出的 container
docker rm -v $(docker ps -a -q -f status=exited)
-v 删除与容器关联的 volume
查看容器日志
docker logs <container_id>
查看容器进程信息
docker top <container_id>
进入当前正在运行的容器
docker exec -it <container_id> /bin/shell
# 或者
docker attach <container_id>
进入容器内部
docker exec -it <container_id> /bin/bash
从容器中将文件拷贝到主机上
docker cp <container_id>:容器目录 主机目录
查看资源
docker stats
提交修改到镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
ps:不推荐用这种方法创建镜像,因为不是很安全,不清楚别人会在里面放什么东西,推荐使用 Dockerfile 的方式创建镜像
查看容器详细信息
docker inspect <image_id>
查看镜像历史
docker history <image_id>
打 tag
docker tag <image_id> <tag_name>
保存镜像到本地
docker save <image_id> -o <name.tar>
加载本地镜像
docker load -i <name.tar>
制作镜像
docker build -t <container_name> .
网络
docker 默认网络:
bridge:docker默认的网络模式,会为每个容器分配一个IP地址- 创建:
docker network create xxx - 使用:
docker run --network xxx
- 创建:
host:容器与主机共享网络命名空间,容器使用主机的网络栈,与主机拥有相同的IP地址,不需要进行端口映射,容器网络性能较高- 使用:
docker run --network host
- 使用:
none:容器不使用网络,完全隔离- 使用:
docker run --network none
- 使用: