Dokcer的简单使用
Docker常用命令
帮助命令
docker version #docker版本
docker info #docker的系统消息,包括镜像和容器的数量
docker --help #帮助命令镜像命令
docker images #查看所有本地的主机上的镜像
[root@iZ2zeamm1ijxugkxau1bdnZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 9 months ago 13.3kB
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
-a, --all #列出所有镜像
-q, --quiet #只显示镜像的id
docker search --help
docker pull #下载镜像 docker pull 镜像名[:tag]
docker pull mysql:5.7 #指定版本
docker rmi -f ${镜像id} #通过镜像id删除镜像
docker rmi -f ${镜像id} ${镜像id} ${镜像id} #通过镜像id删除多个镜像
docker rmi -f ${docker images -aq} #删除全部容器
容器命令
有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker run [可选参数] image
#参数说明
--name="Name" 容器名字 tomcat01 tomcat02 ,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
-p ip:主机端口:主机端口
-p 主机端口:容器端口(常用)
-p 容器端口
-P 随机指定端口
#测试,启动进入容器
[root@iZ2zeamm1ijxugkxau1bdnZ /]# docker run -it centos /bin/bash
[root@ef7a047fbd55 /]# ls
bin etc lib lost+found mnt proc run srv tmp var
dev home lib64 media opt root sbin sys usr
docker ps
#列出当前正在运行的容器
-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
#退出容器
exit #直接容器停止并退出
Ctrl + P + Q 容器不停止退出
#删除容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq) #删除所有容器
docker ps -a -q|xargs docker rm #删除所有的容器
#启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
常用命令
问题:docker ps,发现centos 停止了
docker容器用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#后台启动容器
docker run -it centos /bin/bash
#查看日志
docker logs -tf --tail 10 dec7b868912bf
docker logs -f -t --tail num 容器id
docker logs -tf 容器id
--tf #显示日志
--tail number #要显示的日志条数
#查看容器中进程信息ps
docker top 容器id
#查看服务器状态cpu
docker stats
#查看镜像的元数据
docker inspect 容器id
#进入当前正在运行的容器
#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
docker exec -it 容器id bashShell
#方式二
docker attach 容器id
#docker exec 进入容器后开启一个新的终端,可以在里面操作(常用)
#docker attach 进入容器正在执行的终端,不会启动新的进程!
#从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
docker cp b45456234:/home/test.java /home
#tomcat
#官方的使用
docker run -it --rm tomcat:9.0
#我们之前的启动都是后台,停止了容器之后,容器还是可以查到 docker run -it --rm,一般用来测试,用完就删除
#下载再启动
docker pull tomcat
#启动
docker run -d -p 3355:8080 --name tomcat01 tomcat
#测试访问有没有问题(阿里云安全组要打开)
#进入容器
docker exec -it tomcat01 /bin/bash
#发现问题 1.linux命令少了 2.没有webapps 阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉。
#保证最小可运行的环境!
思考问题:我们以后要部署项目,如果每次都要进入容器十分麻烦,我要是可以再容器外部提供一个映射路径,webapps,我们可以在外部放置项目,就自动同步到内部就好了!
#部署es+kibana
#es 暴露的端口很多!
#es 十分的耗内存
#es 的数据一般需要放置到安全目录 挂载
# --net somenetwork ? 网络配置
#启动elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag:7.6.2
#es是个十分耗内存的1点几个G
#赶紧关闭,增加内存的限制,修改配置文件 -e
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -xmx512m" elasticsearch:tag:7.6.2可视化
portainer
docker run -d-p8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sork --privileged=true portainer/portainer什么是portainer?
Docker图形化界面管理工具,提供一个后台板供我们操作
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sork --privileged=true portainer/portainer测试访问:http://ip:8088/