Docker常用命令合集【更新中】
常用命令
docker search --镜像名 搜索仓库镜像
docker pull --镜像名 拉取镜像
docker ps 查看目前正在运行的所有容器 (-a 显示包括已经停止的容器)
docker rmi image_id/image_name 删除镜像
docker build 使用Dockerfile创建镜像
docker run 运行容器
docker exec 进入容器中执行命令 (例如:docker exec -it container_id/container_name /bin/bash)
docker logs container_id/container_name 查看容器日志(例如:docker logs -f -t --tail 10 container_id )
docker start container_id/container_name 启动容器
docker restart container_id/container_name 重启容器
docker stop container_id/container_name 停止容器
docker rm container_id/container_name 删除容器(只能删除已停止的容器)
更多的命令可以通过docker help命令来查看。
mysql容器创建
docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=abc123 \
-v /home/mysql:/etc/mysql/conf.d \
-p 3306:3306 \
mysql:latest \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--lower_case_table_names=1
这个命令的参数含义如下:
-d:以后台模式运行容器。
--name mysql:指定容器名称为mysql。
-e MYSQL_ROOT_PASSWORD=abc123:设置MySQL root用户的密码。
-v /home/mysql:/etc/mysql/conf.d:将宿主机中的/home/mysql/目录挂载到容器中/etc/mysql/conf.d/目录下,从而覆盖容器中默认的MySQL配置文件。
-p 3306:3306:将容器内部的MySQL 3306端口映射到宿主机的3306端口。
mysql:latest:使用MySQL镜像的最新版本。
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci:设置MySQL的字符集编码和排序规则。
--lower_case_table_names=1:设置MySQL大小写不敏感。
2023-08-14 补充
大家可能在使用docker创建mysql容器的时候会遇到容器老是运行一会儿就自动关闭或者连接、执行很慢。其实可能是容器内存跑满了,这个时候不想重新创建容器,但是又需要更新容器内存大小,这个时候就需要用到docker update命令了。
使用以下命令来更新容器的内存限制。将 your_container 替换为容器的名称或 ID,并将 1g 替换为新的内存限制大小。
docker update --memory=1g --memory-swap=1g your_container # 容器名
创建Redis示例
docker run -p 6379:6379 --name redis
-v /mydata/redis/data:/data
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
-d redis redis-server /etc/redis/redis.conf
获取docker容器内信息(ip地址等)
docker inspect <容器ID或名称>
获取IP地址
docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <容器ID或名称>
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器ID或名称>
# 注意: 在windows环境中,必须使用"",部分linux环境下如果模板解析失败,需要换成''0
创建MinIO容器示例
docker run -p 9000:9000 -p 9001:9001 --name minio-server -v /your/host/path/to/data:/data -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=abc123abc123" -d minio/minio server /data --console-address ":9001"