1.镜像
#查看镜像
docker image
#搜索镜像
docker search --filter=star=5000 mysql
#拉取一个镜像
docker pull image
docker pull image:tag
#运行一个镜像
docker run tomcat
docker run tomcat:tag
#镜像添加标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag tomcat tomcat:v1 #把latest镜像复制并打标成v1
docker tag tomcat:v1 tomcat:v2 #把v1镜像复制并打标成v2
#删除一个镜像、多个镜像
docker rmi -f 镜像名/镜像ID
docker rmi -f 镜像1/镜像ID1 镜像2/镜像ID2 镜像3/镜像ID3
######### 慎用 #########
### 删除全部镜像
docker rmi -f {docker images -aq}
###强制删除镜像
docker imges rm 镜像名/镜像ID
######### 慎用 #########
#保存镜像
docker save 镜像名/镜像ID -o ${镜像路径}/${新镜像名称}
docker save tomcat -o /opt/images/tomcat.tar
#加载文件,生成镜像
docker load -i /opt/images/tomcat.tar
2.容器
#查看正在运行的容器
docker ps
#查看所有容器
docker ps -a
# 显示command全部信息
docker ps -a --no-trunc
#启动容器 交互式
docker run -it -d --name mysql100 mysql:1.0.0 /bin/bash
#--restart=always docker服务启动就会自动拉起的容器
#--restart具体参数值详细信息:
# no - 容器退出时,不重启容器;
# on-failure - 只有在非0状态退出时才从新启动容器;
# always - 无论退出状态是如何,都重启容器;
docker run -it -d --name mysql100 --restart=always mysql:1.0.0 /bin/bash
#已运行容器,用update语句来更新 自动启动参数
docker update --restart=always
#关闭容器自动启动
docker update --restart=no 容器ID
#关闭全部容器的自动启动
docker update --restart=no $(docker ps -q)
#卷挂载 可挂载多次 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置
docker run -it -d --name mysql100 --restart=always -v /var/lib/mysql/data/:/data -v /var/lib/mysql/conf/:/usr/local/etc/mysql/mysql.conf mysql:1.0.0 /bin/bash
##密码 --requirepass "password"
#已启动容器修改为随docker启动自动拉起
docker update --restart=always 容器Id 或者 容器名
docker container update --restart=always 容器Id 或者 容器名
#停止容器
docker stop 容器名/容器ID
#删除容器 单个/多个
docker rm -f 容器名/容器ID
docker rm -f 容器名1/容器ID1 容器名2/容器ID2 容器名3/容器ID3
#端口映射 -p 外部:内部 -P 随机指定端口(49000~49900)映射
docker run -it -d mysql100 -p 8080:80 mysql:1.0.0 /bin/bash
#进入容器
docker exec -it 容器名/容器ID /bin/bash
docker exec -it mysql100 /bin/bash
#退出
#优雅退出 无论如何启动,docker都会继续运行
Ctrl + p + q
#直接退出,未添加 -d 参数的容器会立即停止
exit
#重启容器
docker restart 容器名/容器ID
#启动容器
docker start 容器ID/容器名
#kill 容器
docker kill 容器ID/容器名
#容器文件拷贝 —无论容器是否开启 都可以进行拷贝
docker cp 容器ID/名称:文件路径 要拷贝到外部的路径 |
docker cp 要拷贝到外部的路径 容器ID/名称:文件路径
#从容器内 拷出
docker cp 容器ID/名称: 容器内路径 容器外路径
#从外部 拷贝文件到容器内
docker cp 容器外路径 容器ID/名称: 容器内路径
#查看容器日志 --tail 查看多少行,默认全部 all
docker logs -f --tail=(all/N) 容器ID