一、Docker基本命令:
sudo systemctl enable docker:设置docker开机自动启动,禁用:sudo systemctl disable docker
docker pull xxx:拉取镜像,例如:docker pull mysql
docker images:查看所有已拉取的镜像信息
docker ps:查看运行中的容器信息
docker ps -a:查看运行中、和已经创建的容器信息,查看全部容器信息
docker port xxx:查看 xxx 容器的端口号,xxx为容器名称或容器Id
docker logs -f -t --since='2022-07-18' --tail=100 xxx:实时查看指定时间后的日志,只显示最后100行
docker logs -t --since="2022-07-15" --until "2022-07-18" xxx:查看两个日期之间的日志
docker logs -f xxx --tail yyy:实时查看容器日志,xxx为容器名称,yyy为显示多少行
docker inspect 容器名称:在Mounts节点中可以看到具体数据卷挂载信息
docker cp /root/test.txt 容器名称:/etc:把主机root目录下的test.txt文件复制到容器的/etc目录下
docker cp 容器名称:/etc/test.txt /root:把容器中/etc目录下的test.txt文件复制到主机的/root目录下
docker rmi -f xxx:删除镜像,xxx为镜像名称或镜像Id
docker rm -f xxx:删除容器,xxx为容器名称或容器Id
docker exec -it xxx /bin/bash:进入容器根目录(执行容器中的命令),xxx为容器名称或容器Id,也可这样写 docker exec -it xxx bash
sudo pip3 install runlike:安装 runlike 指令,可用于查看容器创建时的命令信息
runlike -p xxx:查看 xxx 容器创建时使用的命令,xxx 为容器名称或容器Id
docker network create 网络名称 --subnet=172.18.0.0/24:创建一个虚拟网络,例如:docker network create mynet --subnet=172.18.0.0/24,指定容器内IP段
docker network ls:查看所有网络
docket network inspect 网络名称:查看网络详情
docker network rm 网络名称:删除网络
docker load:
docker volume create 数据卷名称:创建数据卷用于挂载,例:docker volume create mysql-data,数据卷默认存储目录为(/var/lib/docker/volumes/卷名称/_data)
docker volume ls:查看已创建的所有数据卷信息
docker volume inspect 数据卷名称:查看数据卷详情
docker volume rm 数据卷名称:删除指定的数据卷
docker stats 容器名称或容器Id:查看容器占用CPU和内存信息
docker update --参数名称 no 容器名称:更新docker容器参数,如果docker容器已被创建,例如:docker update --restart no mynginx
docker run --name mysql8 -d -p 3306:3306
-v /devtools/mysqldata/log:/var/log/mysql
-v /devtools/mysqldata/data:/var/lib/mysql
-v /devtools/mysqldata/conf:/etc/mysql
-v /devtools/mysqldata/mysql-files:/var/lib/mysql-files
-e MYSQL_ROOT_PASSWORD=root
mysql:8.0.29
创建容器,参数说明:
-d:后台运行容器,不挂断
-p 3306:3306:映射容器端口到主机端口,左为主机端口,右为容器端口
--name:容器名称
-v xxx:xxx:挂载备份文件,左边xxx为主机目录,右边xxx为容器目录。 默认挂载到系统目录 var/lib/docker/volmont
-e xxx:设置环境变量,例如:MYSQL_ROOT_PASSWORD=root,设置管理员密码为root
--net 网络名称
--ip 子网IP地址172.18.0.xxx
mysql:8.0.29:创建容器要使用到的镜像名称、版本号
二、Dockerf关键命令
docker build -f ./Dockerfile -t 镜像名称:版本号 .:构建镜像,末尾的点不可缺少,-t表示tag
docker tag 现镜像名称:现镜像版本 镜像库注册账号/现镜像名称:现镜像版本。给现有镜像打标签,例:docker tag n:v a/n:v
docker push 标签名:版本号:将本地镜像推送到镜像仓库,需要先登录到镜像仓库。参数说明:--disable-content-trust(忽略镜像的校验,默认开启)
Docker容器中操作MySql常用命令:
mysql -uroot -proot:连接mysql服务,root分别为用户名和密码
use xxx:切换到 xxx 数据库,xxx为数据库名称
select user,host from user;:查看用户权限信息
grant all privileges on *.* to 'root'@'%' with grant option;:
1、给用户授权,all代表所有权限(CRUD)等,*分别代表库名和表名,%所有访问IP
2、权限:all(所有权限),usage(无权限),select,update,insert,delete(指定权限),update(字段1,......,字段N) 指定字段
3、访问权限:%(所有主机),localhost(数据库服务器本机)
4、语法:grant 权限列表 privileges on 库名.表名 to '用户'@'IP地址' with grant option;
grant select, update, delete, insert on *.* to 'root'@'%' with grant option;:为root用户授予所有库和表的(CURD)权限
flush privileges;:刷新更新或配置信息,使之生效