Docker常用命令
帮助命令
查看docker版本
docker version
查看docker信息
docker info
查看docker命令
docker --help
镜像命令
列出本地镜像
docker images
docker images -a 列出本地所有的镜像
docker images -q 只显示ID
docker images -qa 列出所有的镜像ID
docker images --digests 显示镜像的摘要信息
docker images --no-trunc 显示完整的镜像信息
从 https://hub.docker.com 查找镜像
docker images search (image name)
docker images search (-s 50 image name) 查找星数大于50的指定镜像
docker images search (-s 50 --no-trunc image name) 查找星数大于50的指定镜像的详细信息
下载镜像
docker pull (image name[: TAG])
删除某个镜像
docker rmi (image name[: TAG])
docker rmi -f (image name[: TAG]) 强制删除
docker rmi -f $(docker images -qa) 全部删除
Dockerfile构建docker镜像
docker build -f Dockerfile -t imageName .
Docker重命名镜像REPOSITORY和TAG
docker tag IMAGEID(镜像id) REPOSITORY:TAG
容器命令
新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARGS...]
OPTIONS:
--name="容器名称":为容器指定一个名称
-d:后台运行容器,并返回容器ID,即启动守护式容器
-i:以交互模式运行容器,通常与-t同时使用
-t:为容器重新分配一个伪输入终端,通常与-i同时使用
-P:随机端口映射
-p:指定端口映射,有以下四种格式:
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
(例:docker run -it -p 8888:8080 tomcat
docker启动tomcat容器,8888为docker端口、8080为tomcat容器的端口,访问路径为docker端口,即IP:8888)
注:Docker容器后台运行就必须要有一个前台进程,容器运行命令如果不是一直挂起的命令(如:top,taail),会自动退出。
(docker run -d centos /bin/sh -c "while true; do echo hello; sleep 2;done",后台启动容器并持续交互)
列出当前所有正在运行的容器
docker ps [OPTIONS]
OPTIONS:
-a:列出当前所有正在运行的容器和历史运行过的容器
-l:显示最近创建的容器
-n args:显示最近n个创建的容器
-q:静默模式,只显示容器编号
--no-trunc:不截断输出
退出容器
exit:容器停止退出
ctrl+P+Q:容器不停止退出
启动容器
docker start containerID | containerName
重启容器
docker restart containerID | containerName
停止容器
docker stop containerID | containerName
强制停止容器
docker kill containerID | containerName
删除已停止容器
docker rm containerID
查看容器日志
docker logs -f -t --tail containerID
-t:加入时间戳
-f:跟随最新日志打印
-tail:数字 显示最后多少条
查看容器内运行的进程
docker top containerID
查看容器内部细节
docker inspect containerID
进入正在运行的容器并以命令行交互
docker attach containerID 直接进入容器命令终端,不会启动新的进程
docker exec -t containerID (/bin/bash) 在容器中打开新的终端,并且可以启动新的进程
从容器内拷贝文件到宿主机
docker cp containerID:容器内的路径 宿主机路径
提交容器副本使之成为新的镜像
docker commit -a="author" -m="desc" containerID imageRepository
Docker常用启动命令
- 启动Tomcat:docker run -d -p 8888:8080 --name containerName -v /mnt/docker/tomcat/dataVolumes/test:/usr/local/apache-tomcat-9.0.10/webapps/test -v /mnt/docker/tomcat/dataVolumes/logs:/usr/local/apache-tomcat-9.0.10/logs --privileged=true imageName
- 启动MySQL:docker run -p 8761:3306 --name mysql5.6 -v /mnt/docker/mysql/conf:/etc/mysql/conf.d -v /mnt/docker/mysql/logs:/logs -v /mnt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6
- 备份MySQL数据:docker exec containerID sh -c ' exec mysqldump --all-databases -uroot -p"root"' > /mnt/docker/mysql/data/databases.sql
- 启动Redis:docker run -p 6379:6379 --name redisServer -v /mnt/docker/redis/data:/data -v /mnt/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
- 启动Nginx:docker run --name myNginx -it -p 8088:80 -v /mnt/docker/nginx/html:/usr/share/nginx/html -v /mnt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /mnt/docker/nginx/conf.d:/etc/nginx/conf.d nginx:latest
本地镜像发布到阿里云
1、登录阿里云,创建仓库镜像
2、进入管理界面按教程push即可