docker常规操作 (这只鲸鱼挺好用)

网友投稿 232 2022-10-19

docker常规操作 (这只鲸鱼挺好用)

查看版本:​​docker version​​

列出本地的镜像:​​docker images​​

拉取镜像:​​docker pull centos[:version]​​

查找镜像:​​docker search ubuntu​​

删除镜像:​​docker rmi ubuntu​​

创建容器:​​docker run --help​​

创建交互式容器:​​docker run -i -t --name=name1 centos /bin/bash​​​ -i:交互式容器 -t:tty终端 -d:守护式容器 –name:指定容器名称

查看正在运行的容器:​​docker ps​​

查看运行过的容器:​​docker ps -a​​

查看最后一次运行的容器:​​docker ps -l​​

退出当前容器:​​exit​​

创建守护式容器:​​docker run -itd --name c2 centos /bin/bash​​

登录到容器中:​​docker exec -it c2 /bin/bash​​

停止运行容器:​​docker stop c1​​

开启容器:​​docker start c1​​

查看容器的详细信息:​​docker inspect c1​​

删除容器:​​docker rm 容器名称/容器id​​ 注意不能删除正在运行的容器

文件拷贝:​​​docker cp 待拷贝的文件或目录 容器名称:容器目录​​​​docker cp 容器名称:容器目录 带拷贝的文件或目录​​

目录挂载 在创建容器的时候,将宿主机的目录与容器的目录进行映射,这样就可以通过修改宿主机的某个目录文件去影响容器 -v 宿主机目录:容器目录​​​docker run -id --name=c1 -v /opt/:/usr/local/myhtml centos​​​​docker exec -it c1 /bin/bash​​

容器/镜像打包 镜像打包: 1、镜像打包:​​​docker save -o /root/xx.tar mydockerimage​​​ 2、将打包的镜像上传到其他服务器(机器) ​​scp xx.tar 其他服务器ip:/root/xx.tar​​ 3、导入镜像:​​docker load -i /root/xx.tar​​ 容器打包: 1、容器打包:​​docker export -o /root/xx.tar t1​​ 2、导入容器:​​docker import xx.tar mytomcat:latest​​

docker镜像制作 (1)使用docker commit 拉取镜像:​​​docker pull cnetos​​​ 创建交互式容器:​​docker run -it --name mycentos centos /bin/bash​​ 在容器中进行操作 将正在运行的容器提交为一个新的镜像:​​docker commit mycentos mydockerimage​​

(2)使用docker build和Dockerfile文件 Dockerfile使用基于DSL语法的指令来构建一个docker镜像,之后使用docker bulider命令来构建一个新的镜像

-------DSL语法------FROM:基础镜像MAINTAINER:维护者信息RUN:安装软件ADD:copy文件(自动解压)WORKDIR:切换工作目录VOLUME:目录挂载EXPOSE:内部服务器端口CMD:执行dockerfile中的命令ENV:设置环境变量

构建镜像步骤: 1、创建一个目录 2、在目录下创建Dockerfile文件以及其他文件 3、通过docker builder构建景象 4、通过构建的镜像启动容器

docker网络管理 查看docker网络:​​​docker network ls​​

一、默认网络 在非集群环境下docker提供的默认网络 docker中默认网络分为bridge、host、none。 bridge可以与互联网通信,host和none不可以与外界网络通信 二、自定义网络 1、bridge 2、overlay network in swarm mode(swarm集群中的覆盖网络) 3、network plugin(定制网络插件) 举栗: 1、创建一个基于bridge的mynet网络,其中–driver用于指定网络驱动类型​​​docker network create --driver bridge mynet​​​ 2、创建一个名为newtest的容器,–network指定了容器的网络连接为mynet​​docker run -itd --nmae=newtest --network=mynet hello-world​​ 3、为newteest容器添加一种默认的网络管理方式​​docker network connect bridge newtest​​ 4、断开网络连接​​docker network disconnect mynet newtest​​ 5、移除名mynet的自定义网络​​docker network rm mynet​​

容器间的通信 1、创建两个使用默认bridge网络容器​​​docker run -itd --name=c1 busybox​​​​docker run -itd --name=c2 busybox​​ 2、创建一个使用自定义的mynet网络(需要预先创建)的容器​​docker network create --driver bridge mynet​​​​docker run --network=mynet -itd --name=c3 busybox​​ 3、为容器2新增一个自定义的mynet网络连接​​docker network connect mynet c2​​

此时容器c1和c3各有一块网卡,c2有两块网卡。 c1和c2, c2和c3可以通信,但是c1和c3不能通信。

swarm 集群网络

实际的服务环境是通过类似于反向代理的形式,将多个服务器通过一台服务器向外提供服务,而内部是通过swarm分配给各个服务器不同的节点来完成的。看了几篇博客,貌似是这个样子。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:记一次springboot中用undertow的坑
下一篇:docker搭建elasticsearch、logstash、kibana
相关文章

 发表评论

暂时没有评论,来抢沙发吧~