服务佳的广州网站建设,十大食品公司,网站开发项目延期说明,辽宁建设工程信息网官网查询docker容器是干什么用的
docker就是一个轻量级的虚拟机#xff0c;是一个容器#xff0c;隔离性好#xff0c;能够确保环境的统一#xff0c;有效利用系统资源#xff0c;轻松迁移和拓展。简单的可以理解为容器就是一个小型功能齐全的虚拟机。 实际上是如何使用的呢…docker容器是干什么用的
docker就是一个轻量级的虚拟机是一个容器隔离性好能够确保环境的统一有效利用系统资源轻松迁移和拓展。简单的可以理解为容器就是一个小型功能齐全的虚拟机。 实际上是如何使用的呢
开发的程序包里有创建容器的脚本我们会根据测试环境的实际情况修改创建容器的shell脚本然后部署到服务器上进行测试。就是这么简单。一个程序一个容器我们有四五十个容器。可以把这些放在一个容器里吗可以不过没必要。如果把所有程序放在一个容器里当这个容器出了问题整个系统就不能用了。一个程序一个容器的话当一个容器出现问题其他容器还是可以正常使用的。再说容器占不了多少系统资源。 容器和镜像的关系
用了一段时间docker容器后维护环境的时候发现docker居然还有一个镜像。什么是docker容器的镜像呢其实容器的创建是依赖镜像的镜像跟java中类和对象的关系类似。通俗的来说镜像和容器的关系就像月饼模型和月饼的关系一样。月饼是根据月饼模型做出来的容器是根据镜像文件造出来的。一个镜像文件可以创建多个容器。一个月饼模式可以做出很多月饼一样。没有镜像就没有容器。容器的名称不能重复否则创建容器就会失败你去看报错信息会写容器已经存在。我们也可以通过容器做一个镜像出来拿着这个镜像到新的环境部署。 查看镜像 查看宿主机上所有的容器包括停止的 docker ps -a 创建容器 docker create -it 镜像名称 拉取ubuntu镜像 docker pull python:3.8 #拉取python3.8镜像 docker pull redis #拉取redis最新镜像 docker pull mysql:5.7 #拉取mysql5.7镜像 docker pull nginx #拉取 nginx镜像 docker pull centos:centos7 docker pull ubuntu:20.04 #拉取 ubuntu:20.04镜像 启动容器 docker start 容器id/名字 # id号只要能够区分即可无需写全部 新建并启动容器 docker run -it 镜像名称 docker rm -f 容器ID docker run nginx docker run -d nginx #后台运行nginx 停止容器
docker stop 容器名字/id号
容器的日志
容器在启动和运行过程中是记录日志的。怎么查呢通过以下命令先查容器列表找到你要查的容器的id
查到容器的id后就可以以下命令查看日志下面的命令是查看2021-11-22容器id的日志 容器的日志在什么路径存放的呢默认路径是/var/lib/docker/overlay2这个下面。我一般都是通过命令查看日志日志路径具体在哪我是不知道的。有一次服务器的var路径可用空间满了我一查原来容器的日志给打满了。它要是不打满我都不知道它在哪。阿弥陀佛我是用到哪查到哪多余的东西都赖得看docker容器用的多了越来越觉得不够用觉得有必要系统的学习下docker了然后就买了本书。不学不知道一学吓一跳东西还真不少。慢慢学吧。
docker是容器容器就是docker吗查了下原来容器世界并不是只有docker还有别的呢。
转载自
docker容器的简单使用 (baidu.com)https://baijiahao.baidu.com/s?id1765038448231587087wfrspiderforpc
虚拟机的生命周期 容器的生命周期 重点容器一直运行的原因
1.它有一条前台进程,一直在运行
2.以后如果自己制作的镜像运行起容器必须有个可以夯住的命令COMMAND
3.如果COMMAND该命令结束该容器也就结束了 # 当我们在后台启动的时候
1.比如docker run -di --namemycentos centos:centos7
2.这时他会自动启动一个 /bin/bash窗口
3.因为我们并没有关闭这个/bin/bash窗口所以他会一直在后台运行
4.我们在使用start或者直接run进入这个镜像的时候就相当于运行的这个命令:/bin/bash就进入了这个bash窗口相当于进入了容器(其实不是进入了容器可以把他看作是xshell一个远程连接连接到这个容器。)这里我们看作是进入到了这个容器当我们使用exit退出的时候就相当于关闭了/bin/bash这个窗口。所以容器一直会在后台运行的原因就是这个/bin/bash窗口一直在启动这,没有关闭它容器创建并启动 – docker run
# 创建并启动run
# 参数 -i表示运行容器 -t表示容器启动后会进入其命令行。加入这两个参数后容器创建就能登录进去。即分配一个伪终端。 -d在run后面加上-d参数,则会创建一个守护式容器在后台运行这样创建容器后不会自动登录容器如果只加-i -t两个参数创建后就会自动进去容器。 --name :为创建的容器命名。如果不写会自动分配一个名字英文人名 -v表示目录映射关系前者是宿主机目录后者是容器目录映射到宿主机上的目录可以使用多个v做多个目录或文件映射。注意最好做目录映射在宿主机上做修改然后共享到容器上。下述单独演示 -p表示端口映射前者是宿主机端口后者是容器内的映射端口。可以使用多个-p做多个端口映射 下述单独演示
# 例子run docker run -it --namemyredis redis # 这时就会启动redis容器并进去redis容器 docker run -id --nameoursql mysql # 这时就不会进入mysql容器再后台运行
# 注意docker run 镜像
使用该命令如果本地没有会先pull再run
5.进入容器内部和退出容器
5.1进入容器
1.查询机器上运行的容器 docker ps
2.进入容器
docker exec -it 容器id/bin/bash
docker exec -it 427 /bin/bash # exec真正的作用是在容器内执行命令而不是真正的进入到容器内部
1.因为 /bin/bash这个命令就相当于与这个容器建立了连接所以我们可以和容器做交互当我们关闭这个连接的时候就会自动结束掉这个容器。
2.执行exec命令: docker exec -it 容器id ls # 查询根路径所有文件
5.2退出容器 # 命令exit 1.使用exit退出容器 2.如果不是则会自动退出容器-it 进入容器退出) 与 (-id 进入容器退出)区别 # -it 进入容器退出(前台容器自动结束【后台停止运行】)
1.在我们使用 -it 参数直接进入该容器的时候使用exit退出的时候这个容器就会自动结束。 - 此时后台就没有该运行中的容器。
# -id 进入容器退出(前台容器自动结束【后台正常运行】)
2.如果使用 -id 后台运行容器的时候使用 docker exec进入该容器此时使用exit退出该容器的话只是退出该容器并没有从后台结束该容器该容器还会在后台运行这。
文件拷贝(宿主机和容器互相拷贝文件)
# 1.从宿主机拷贝到容器内部 docker cp 宿主机文件 容器id:容器路径 docker cp /home/a.txt 427:/home
# 2.从容器中拷贝到宿主机 docker cp 容器id:容器路径 宿主机路径(起别名) docker cp 427:home/a.txt a.txt 设置容器的IP地址
使用 Docker 网络命令创建一个自定义的网络并指定子网和网关。然后您可以在运行容器时使用 --net 和 --ip 参数来分配静态 IP 地址。例如您可以执行以下命令1
docker network create --subnet192.168.56.0/24 --gateway192.168.56.1 mynetwork
docker run --net mynetwork --ip 192.168.56.40 -it ubuntu bash使用 Docker Compose 工具来定义和运行多个容器并在 docker-compose.yml 文件中配置网络和 IP 地址。例如您可以使用以下配置2
version: 3
services:ubuntu:image: ubuntunetworks:mynetwork:ipv4_address: 192.168.56.40
networks:mynetwork:driver: bridgeipam:driver: defaultconfig:- subnet: 192.168.56.0/24gateway: 192.168.56.1然后您可以使用 docker-compose up 命令来启动容器。 在dicker ubuntu容器中如何查看IP地址
查看在docker ubuntu容器中的IP地址,有以下几种方法
进入容器内部后使用cat /etc/hosts命令会显示自己以及--link软连接的容器IP¹。使用docker inspect container id或者docker inspect --format { { .NetworkSettings.IPAddress }} container id或者docker inspect -f { {range .NetworkSettings.Networks}} { {.IPAddress}} { {end}} container_name_or_id命令可以查看容器详细信息里面包含IP地址信息²³⁴。使用docker inspect -f { {.Name}} - { {.NetworkSettings.IPAddress }} $ (docker ps -aq)或者docker inspect -f { {.Name}} - { {range .NetworkSettings.Networks}} { {.IPAddress}} { {end}} $ (docker ps -aq)或者docker inspect --format { {.Name}} - { {range .NetworkSettings.Networks}} { {.IPAddress}} { {end}} $ (docker ps -aq)命令可以获取所有容器名称及其IP地址²³⁵。 参考链接
(1) 获取/显示docker容器的ip地址 - CSDN博客. https://bing.com/search?q%e5%9c%a8dockerubuntu%e5%ae%b9%e5%99%a8%e4%b8%ad%e5%a6%82%e4%bd%95%e6%9f%a5%e7%9c%8bIP%e5%9c%b0%e5%9d%80. (2) 如何获取 Docker 容器的 IP 地址 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/474638529. (3) 查看docker 容器中的IP地址 - halberd.lee - 博客园. https://www.cnblogs.com/halberd-lee/p/12519294.html. (4) 查看docker 容器的ip地址_查询docker ip_我是大头鸟的博客-CSDN博客. https://blog.csdn.net/datouniao1/article/details/103856583. (5) docker ubuntu 查看ip_51CTO博客. https://blog.51cto.com/topic/docker-ubuntu-chakanip.html. (6) 获取/显示docker容器的ip地址 - CSDN博客. https://blog.csdn.net/HaroldPQHaroldPQ/article/details/123459871. (7)https://blog.csdn.net/2201_75529678/article/details/128113610 如何往dicker ubuntu容器里传文件
往docker ubuntu容器里传文件。根据我的搜索结果有以下几种方法
使用docker cp命令可以在宿主机和容器之间复制文件。格式如下宿主机向容器传送文件docker cp 本地文件的路径 container_id:容器内的路径²³⁴。容器向宿主机传送文件docker cp container_id:容器内的路径 本地保存文件的路径²³⁴。进入容器内部后使用rz命令可以把本地电脑文件传到容器。输入rz就会弹出文件选项框选择文件上传¹⁵⁶。 (1) 传输文件到docker容器 - 五毛钱的饼 - 博客园. https://www.cnblogs.com/fsong/p/11335251.html. (2) 将文件从Ubuntu本机上传至Docker容器中_ubuntu传文件到docker容器_鹰KING的博客-CSDN博客. https://blog.csdn.net/weixin_51589360/article/details/122069045. (3) Docker和Ubuntu主机互传复制文件_软件工程小施同学的博客-CSDN博客. https://blog.csdn.net/u013288190/article/details/103223824. (4) docker学习13-docker容器的文件导入和导出 - 上海-悠悠 - 博客园. https://bing.com/search?q%e5%a6%82%e4%bd%95%e5%be%80dockerubuntu%e5%ae%b9%e5%99%a8%e9%87%8c%e4%bc%a0%e6%96%87%e4%bb%b6. (5) docker学习13-docker容器的文件导入和导出 - 上海-悠悠 - 博客园. https://www.cnblogs.com/yoyoketang/p/12131002.html. (6) docker学习13-docker容器的文件导入和导出 - 腾讯云. https://cloud.tencent.com/developer/article/1574278.