一、docker信息
docker -v
dokcer version #查看docker版本
docker info #查看docker容器信息
二、镜像操作:对于镜像的操作可使用镜像名、镜像长ID和短ID。
1、查看镜像
docker images 列出本地images
docker images -a 含中间映像层
docker images restfulhttp 列出指定镜像
2、镜像搜索
docker search restfulhttp(镜像名称)
3、镜像构建
(1)编写dockerfile
cd /docker/dockerfile
vim zlydockerfile
FROM nginx_kylin9-28:1.20
COPY ./dist /usr/local/nginx/html/ # 把文件copy到/usr/local/nginx/html/这样一个文件夹下面
ADD ./nginx.conf /usr/local/nginx/conf/nginx.conf
RUN mkdir -p /var/log/nginx/ && chmod 777 /var/log/nginx/
ENTRYPOINT /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf && tail -f /var/log/nginx/error.log
ENV LANG C.UTF-8
EXPOSE 8088
(2)构建docker镜像
docker build -t zlyImage:latest -f /docker/dockerfile/zlydockfile#-t指定名字 :指定标签 -f指定dockerfile文件 (可以先cd到dockerfile文件夹下,这样就无需-f)
4、镜像推送
1)默认操作
docker push zlyImage:latest
2)实际小案例
#登录云环境
docker login -u samr-man-1_rescource_yy005@Q0DAKFZFO6MHMDIKNJT -p 34822bf6a0663f4b94af1c771d5ee84aee463bd6d748402a5a268fb6c928e swr.samr-madian-1.samrcloud.com
给镜像打标签(方便回滚版本时,使用指定标签的镜像来创建容器)
docker tag zlyImage:latest swr.samr-man-1.samrcloud.com/yunImage:v1.0 #将镜像zlyImage:latest打成yunImage:v1.0
docker push swr.samr-man-1.samrcloud.com/yunImage:v1.0 #swr.samr-man-1.samrcloud.com仓库地址
5、镜像删除
docker rmi redis 单个镜像删除,相当于:docker rmi redis:latest
docker rmi -f redis 强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis tomcat nginx 多个镜像删除,不同镜像间以空格间隔
docker rmi -f $(docker images -q) 删除本地全部镜像
6、镜像下载
docker pull redis 下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull -a redis 下载仓库所有Redis镜像
docker pull bitnami/redis 下载私人仓库镜像
7、镜像导出
#docker save 镜像名:版本号 -o /路径/保存的包名.tar
docker save nginx:14.04 > /images/nginx.tar
8、镜像导入
docker load --input /images/nginx.tar 导入镜像文件
docker load < /images/nginx.tar 通过符号的方式导入
三、容器操作:
1、容器启动
##新建并启动容器,参数:-i 以交互模式运行容器;-t 为容器重新分配一个伪输入终端;--name 为容器指定一个名称
docker run -i -t --name zlyContainer
##后台启动容器,参数:-d 已守护方式启动容器 -p
docker run --name zlyContainer -d -p 8777:80 restfulhttp:v1.3
2、查看容器
docker ps #查看正在运行的容器
docker ps -q #查看正在运行的容器的ID
docker ps -a #查看正在运行的容器+历史运行过的容器
docker ps -s #显示运行容器总文件大小
3、容器的停止与删除
docker stop zlyContainer #停止一个运行中的容器
docker kill zlyContainer #杀掉一个运行中的容器
docker rm zlyContainer #删除一个已停止的容器
docker rm -f zlyContainer #删除一个运行中的容器
docker rm -f $(docker ps -a -q) #删除多个容器
docker ps -a -q | xargs docker rm
docker rm -l db #移除容器间的网络连接,连接名为db
docker rm -v zlyContainer#-v删除容器,并删除容器挂载的数据卷
4、容器的进入与退出
docker run -it zlyContainer /bin/bash #使用run方式在创建时进入
exit #关闭容器并退出
快捷键 CTRl + P+Q #仅退出容器,不关闭
docker attach --sig-proxy=false centos ##直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false 确保CTRL-D或CTRL-C不会关闭容器
docker exec -i -t zlyContainer ls -l /tmp##以交互模式在容器中执行命令,结果返回到当前终端屏幕##在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i 即使没有附加也保持STDIN 打开;-t 分配一个伪终端
docker exec -d zlyContainer touch cache.txt ##以分离模式在容器中执行命令,程序后台运行,结果不会反馈到当前终端
5、容器日志
docker logs zlyContainer##查看zlyContainer容器日志,默认参数
docker logs -f -t --tail=20 zlyContainer##查看zlyContainer容器日志,参数:-f 跟踪日志输出;-t 显示时间戳;--tail 仅列出最新N条容器日志;
docker logs --since="2019-05-21" --tail=10 zlyContainer##查看容器zlyContainer从2019年05月21日后的最新10条日志。