一、帮助启动类命令
- 启动docker: systemctl start docker
- 停止docker: systemctl stop docker
- 重启docker: systemctl restart docker
- 查看docker状态: systemctl status docker
- 开机启动: systemctl enable docker
- 查看docker概要信息: docker info
- 查看docker总体帮助文档: docker --help
- 查看docker命令帮助文档: docker 具体命令 --help
二、镜像命令
列出本地主机上的镜像:docker images
查找镜像:docker search [--limit 5] XXX镜像名字 其中 [--limit 5] 表示查找前5个镜像
下载镜像:docker pull XXX镜像名字[:tag] 其中tag表示版本号,为空表示最新版本
查看容器、镜像、数据卷所占的空间:docker system df
删除镜像:docker rmi [-f] XXX镜像名字或ID 其中[-f]表示强制(force)删除
docker rmi -f $(docker images -qa) 表示删除全部镜像
三、容器命令
新建+启动容器:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明(常用): 有些是一个减号,有些是两个减号
--name="容器新名字"为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i: 以交互模式运行容器,通常与-t同时使用;
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用;也即启动交互式容器(前台有伪终端,等待交互);
-P: 随机端口映射,大写PI
-p: 指定端口映射,小写p
例如新建mysql容器并启动交互:
Go
docker run --name test -e MYSQL_ROOT_PASSWORD=1 -d mysql
//--name test 为容器指定一个名称(可替换test为自己喜欢的名称)。
//-e MYSQL_ROOT_PASSWORD=1 设置MySQL的root密码。你应该替换1为你的实际密码。
//-d 使容器在后台运行。
//mysql:latest 是要运行的MySQL镜像和标签(在这里是最新版本)
//以数据卷的形式,创建并启动mysql容器,容器内的mysql数据不会因为容器的删除而被删除
docker run --name m1 -e MYSQL_ROOT_PASSWORD=1 -v /root/mysqlData:/var/lib/mysql --privileged=true -p 3306:3306 -d mysql
//-v /root/mysqlData:/var/lib/mysql:将数据卷/root/mysqlData映射到容器的/var/lib/mysql目录
//-p 3306:3306:将容器的3306端口映射到主机的3306端口
//--privileged=true: 使容器内的root拥有真正的root权限,解决挂载目录没有权限的问题
列出当前所有正在运行的容器:docker ps [options]
Go
docker ps [options]
//-a: 列出当前所有正在运行的容器+历史上运行过的
//-l: 显示最近创建的容器
//-n: 显示最近n个创建的容器
//-q: 静默模式,只显示容器编号
退出容器:exit 退出容器并停止
crt + p + q (快捷键)退出容器但并不停止容器
启动已停止的容器:docker start 容器名或容器ID
重启容器:docker restart 容器名或容器ID
停止容器:docker stop 容器名或容器ID
强制停止容器:docker kill 容器名或容器ID
删除已经停止的容器:docker rm 容器名或容器ID
Go
//强制删除正在运行的容器
docker rm -f 容器名或ID
//删除所有容器
docker rm -f $(docker ps -a -q)
或者
docker ps -a -q | xargs docker rm
查看容器日志:docker logs 容器名或ID
查看容器内运行的进程:docker top 容器名或ID
查看容器内部细节:docker inspect 容器名或ID
进入正在运行的容器并以命令交互:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker attach 容器ID
两者区别:attach 进入容器不启动新的进程,用exit退出时,会导致容器停止
exec 进入容器会启动新的进程,用exit退出时,不会停止容器
Go
//启动mysql容器并进入命令交互
docker exec -it test mysql -u root -p
//Options:
// -d, --detach Detached mode: run command in the background
// --detach-keys string Override the key sequence for detaching a container
// -e, --env list Set environment variables
// --env-file list Read in a file of environment variables
// -i, --interactive Keep STDIN open even if not attached
// --privileged Give extended privileges to the command
// -t, --tty Allocate a pseudo-TTY
// -u, --user string Username or UID (format: "<name|uid>[:<group|gid>]")
// -w, --workdir string Working directory inside the container