镜像命令
镜像=应用+环境
linux启动docker
systemctl start docker
查看镜像
docker images
搜索[星星数大于3000的]镜像
docker search <name> [--filter=starts=3000]
下载镜像(指定版本,默认latest最新版)
docker pull <mysql>[:tag]
删除镜像
docker rmi -f <IMAGE ID> <IMAGE ID> <IMAGE ID>
删除全部镜像(搜索全部ID,然后删除)
docker rmi -f $(docker images -aq)
提交镜像
docker commit -m="提交的描述信息" -a="作者" 容器ID:TAG
编辑镜像信息
会复制出来一个
[root@iZbp15z86pn7vsr3hfchwtZ ~]# docker tag 目标镜像名:目标TAG(镜像ID) 更改后的镜像名:更改后的TAG
容器命令
有了镜像才能创建容器
创建容器并启动
docker run [可选参数] REPOSITORY:TAG
–name 给容器起名字
-d 后台运行
-it 使用交互方式运行,进入容器
-p 容器端口 指定容器端口
-p [ip:]主机端口:容器端口 指定容器端口映射到主机端口
-P 随机指定端口
-d 容器后台运行,必须要有前台进程,docker发现没有前台或者对外提供服务的应用就直接停止了
-e 配置环境
-rm 服务用完就删(虚悬镜像,会把镜像文件都删掉),常用于测试
–net 网络配置
查看当前活着的容器
docker ps [可选参数]
-a 查看所有的的容器+历史运行容器
-n=? 查看最近?个容器
-q 只显示容器编号
退出容器并停止,回到主机
exit
退出容器不停止,回到主机
Ctrl + P + Q
删除指定容器
docker rm 容器ID
```powershell
**删除全部容器**
```powershell
docker rm [-f] $(docker ps -aq)
-f 强行删除,运行的容器也删除
启动容器
docker start 容器ID
重启容器
docker restart 容器ID
停止容器
docker stop 容器ID
强制停止容器
docker kill容器ID
常用其他命令
查看cpu状态
docker stats
查看日志
docker logs -f -t [--tail n] 容器ID
要先启动服务
–tail 以字符串形式显示所有日志
n 查看最近n条日志
查看容器中进程信息
docker top 容器ID
查看镜像源数据
docker inspect
进入当前正在运行的容器
docker exec -it 容器ID bashShell
进入当前正在运行的容器
docker attach 容器ID
exec:进入容器后开启一个新的终端,可以在里面操作
attache:进入容器正在执行的终端,不会开启一个新的进程
从容器内拷贝文件到主机
docker cp 容器ID:文件绝对路径(/home/.....) 目标主机地址
容器数据卷
容器间数据同步和持久化技术
防治容器删除,数据就丢失,需要数据持久化。Docker容器产生的数据,保存到本地。
docker run -it -v [卷名:][本地目录:]容器目录[:权限]
有卷名是具名挂载,没卷名是匿名挂载
本地路径不写,会自动生成目录(/var/lib/docker/volumes/卷名/_data)
权限:ro 只读(一旦设置容器只能读这些文件,文件只能在宿主机改变),rw 可读写
匿名挂载
-v 容器内路径 查看数据卷名字是乱的
具名挂载
-v 卷名:容器内路径
如何确定挂载是具名挂载还是匿名挂载,还是指定路径
查看所有数据卷
docker volume ls
容器间数据同步
docker run -it --columes-from 父容器 子容器
子容器和父容器间的共享卷是通过拷贝实现的,删除父容器不会影响子容器内的共享卷文件
DockerFile东西有点多,换了篇文章。Docker完整部署项目——2.DockerFile学习