docker进程相关操作
root sq
#1- 查看docker 版本
docker -v
#2- 查看docker 命令
docker --help
#3- 查看docker 服务端与客户端版本详情
docker version
#4- 启动docker进程
systemctl start docker
#5- 关闭docker
systemctl stop docker
#6- 重启docker
systemctl restart docker
#7- 查看docker运行状态
systemctl status docker
#8- 关闭防火墙
systemctl stop firewalld #disable
镜像操作
#1- 查看镜像—本地的
docker images
#2- 搜索镜像–首先本地 --默认的地址
docker search tomcat
#3- 找到所有的镜像–拉取 pull
docker pull tomcat #最新版本
docker pull tomcat:7#最新版本
docker images
docker rmi 镜像id#删除镜像
#4- 本地有了镜像–可以创建容器
#根据tomcat镜像,创建一个myTomcat容器
docker create --name=myTomcat tomcat# 只是创建,没有运行
#5- 查看容器
docker ps #查看在运行的容器
docker ps -a#查看所有的容器
#容器很多,筛选出你需要看的容器
docker ps |grep tomcat
#6- 运行容器
docker start myTomcat #start 后面可以跟 容器的id(前2-3位) 或者 name
#7- 停止容器
docker stop myTomcat #start 后面可以跟 容器的id(前2-3位) 或者 name
#8- 删除没有运行的容器
docker rm 容器id或者名字
#9- 删除在运行的容器
docker rm -f 容器id或者名字
#10- 删除所有的容器
#先停止所有的容器
docker stop $(docker ps -a -q)
#删除
docker rm $(docker ps -a -q)
#删除所有镜像
docker rmi $(docker images -q)
运行容器的一些操作
#1- 查看docvker run 命令—创建并且启动容器
docker run --help
docker run 后面的参数
-i #运行容器
-t #容器启动后,进入命令行
-v #目录映射–挂载
-d #守护进程–后台运行
-p #端口映射 -p 宿主机的端口:容器的端口
#如果容器里有tomcat ,你本机的windows想访问:
#docker tomcat 端口号是8080,需要在虚拟机映射一个端口 9099
#windows才可以访问 http://虚拟机的ip:9099
#2- 创建容器,并且进入命令行—进入容器
docker run -di --name=mytomcat2 tomcat
docker run -it --name=myTomcat tomcat /bin/bash
#3- 退出
exit #容器已经退出
#4- 有没有一起启动方法,不退出容器
#创建运行一个守护的容器
docker run -id --name=myTomcat2 tomcat
#进入
docker exec -it myTomcat2 /bin/bash
docker exec -uroot -it tomcat2/bin/bash 以root用户进入docker
docker stats 查看运行容器占用资源 内存、cpu等
4、宿主机与docker容器的文件传递
#1- 在宿主机创建一个文件
touch xt.txt
#2- 把改文件复制到容器里去
docker cp xt.txt myTomcat2:/
#3- 进入根目标
cd /
#查看
ls
#1- 怎么从容器中的文件copy 到宿主机里
touch abc.txt
#2- 退出容器
exit
#3-
docker cp myTomcat2:/abc.txt /root
访问tomcat
#1-启动并且作为守护进程
#-p 宿主机的端口:容器里应用的端口 8080
#war挂载宿主机 -v 宿主机的路径:容器路径 路径会新建
docker run -di --name=myTomcat -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat
http://虚拟机ip:9999
#2- 把war包放到宿主机的挂载目录里 ,直接刷新浏览器就出现项目的页面
#微服务 k8s 容器式的性能测试
#启动容器时关联其他容器 mysql独立的容器(给下账号密码。默认是root)
docker run -di --name=tomcat2 -p 8080:8080 --link mysql --link redis --link rabbitmq
#tomcat容器里的配置文件在 /usr/local/tomcat/conf/server.xml
docker cp a2:/usr/local/tomcat/conf/server.xml /root
扩展
1、镜像备份
#把tomcat镜像打包成文件,
docker save -o tomcat.tar tomcat
#把tomcat.tar放到其他电脑,其他人变成镜像使用
docker load -i tomcat.tar
2、时间同步问题
宿主机linux查看时间
[root@localhost etc]# date
2020年 12月 06日 星期日 04:38:43 CST
时区是对的,只是时间不对
安装ntp
yum install ntp #安装ntp服务
同步阿里时间
docker cp /etc/localtime ec327fc07985:/etc/localtime
#抛异常
Error response from daemon: Error processing tar file(exit status 1):invalid symlink"/usr/share/zoneinfo/UCT" -> "…/usr/share/zoneinfo/Asia/Shanghai”
#解决办法
docker cp /usr/share/zoneinfo/Asis/shanghai 容器id:/etc/localtime
#重启容器
docker restart 容器id
ntpdate ntpl.aliyun.com
注意事项:
可能网络会断开,请重新reboot下linux
虚拟机的ip可能会改变
3、轻量级图形页面管理之portainer
portainer docker ui 页面的
dockerUI
1.查看portainer镜像
[root@localhost ~]# docker search portainer
2.选择喜欢的portainer风格镜像,下载
[root@localhost ~]# docker pull portainer/portainer
3.启动dockerui容器
[root@localhost ~] docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
4、浏览器访问 http://你虚拟机的ip:9000, 设置一个密码即可,点击创建用户 密码要8位以上
5、我们搭建的是单机版,进入页面直接选择Local ,点击连接
4、docker logs命令
docker logs [options] 容器获取容器的日志。
名字 默认值 描述
–details
显示提供给日志的额外细节
–follow或-f
按日志输出
–since
从某个时间开始显示,例如2013-01-02T13:23:37
–tail all 从日志末尾多少行开始显示
–timestamps或-t
显示时间戳
–until
打印某个时间以前的日志,例如 2013-01-02T13:23:37
例如打印容器mytest应用后10行的内容
docker logs -f --tail 10 a4dac74d48f7
通过docker logs命令可以查看容器的日志。
docker logs -f -t --tail 100 datacenter
命令格式:
$ docker logs [OPTIONS] CONTAINER
Options:
–details 显示更多的信息
-f, --follow 跟踪实时日志
–since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
–tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
–until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since=“2018-02-08” --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
$ docker logs -t --since=“2018-02-08T13:23:37” CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since=“2018-02-08T13:23:37” --until “2018-02-09T12:23:37” CONTAINER_ID
5、修改已存在docker容器的端口映射
查看容器的挂载目录
docker inspect 容器id | grep Mounts -A 20