docker学习笔记(必备的几个docker基础技能集合)
1、基础命令(镜像及容器查看)
镜像的查看:
docker images
注意:images ID 是镜像的ID,启动和删除都会使用到
容器查看:
所有的容器都能看到,包括未在运行的:
docker ps -a
监听状态下的容器查看:
docker ps
注意:container ID 是容器的ID,启动和删除都会使用到
2、容器及镜像的启动/运行/删除
要删除一个容器,首先需要停止这个容器:
停止:
docker stop container ID
停止全部容器:
docker stop $(docker ps -a -q)
停止之后即可进行删除操作:
docker rm container ID
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged 镜像,也就是那些id为的
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
步骤总结:
1、docker ps -a 查看哪些在用容器
2、docker rm CONTAINER ID
3、docker images
4、docker rmi IMAGE ID
进入容器:
1、docker ps -a
2、docker exec -it ab45716603de /bin/bash
启动一个容器:
docker run -p 8081:8080 tomcat &
注:可以用--name给他指定了一个名(不指定的话会生成一个随机的名子)
以挂载的方式启动容器:
docker run -i -t -v /root/software/:/mnt/software/ e934 /bin/bash
其中,相关参数包括:
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
3、Docker cp 命令
docker cp :用于容器与主机之间的数据拷贝。
语法
> docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS]
> SRC_PATH|- CONTAINER:DEST_PATH
实例
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
4、数据卷
docker可以支持把一个宿主机上的目录挂载到镜像里。
docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash
默认挂载的路径权限为读写。如果指定为只读可以用:ro
docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash
数据卷
数据卷:“其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的”。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。
创建一个普通的容器,用了挂载:
docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash
再创建一个新的容器,来使用这个数据卷。
docker run -it --volumes-from dataVol ubuntu64 /bin/bash
–volumes-from用来指定要从哪个数据卷来挂载数据。
5、创建docker私有仓库:
参考文章:
写的超级详细:https://www.cnblogs.com/linjiqin/p/8619667.html
6、实际案例(Tomcat发布一个自己的网站)
大致的过程如下,后续详细补充:
方式1:
直接pull一个Tomcat镜像,然后docker cp 将需要的网站包放到 /usr/local/tomcat/webapps 下面,然后:docker run -p 8080:8080 tomcat &
方式2:
pull 一个centos镜像,启动之后,环境变量及Tomcat安装包挂载进去,启动