docker

docker

一、安装启动docker

#先卸载旧docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 升级 yum
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo


#安装docker
yum install docker-ce docker-ce-cli containerd.io
#启动docker 服务
systemctl start docker

二、镜像命令

  • docker images :查看docker 镜像

    • -q:只显示id
    • -a:显示全部镜像信息
  • docker search 镜像名:dockerhub上搜索镜像

  • docker pull 镜像[:tag]:去dockerhub上拉取镜像,拉取的镜像必须存在。tag如果不指定就默认下载最新的

  • docker rmi 镜像id:删除镜像

    • docker rmi $(docker images -q):删除所有容器
  • docker commit -a-"作者" -m="提交内容" 容器id 新镜像名字:tag:将修改后的容器提交到本地仓库,下次可以直接使用该镜像

三、容器命令

  • docker ps :列出所有正在运行的容器

    • -a:列出所有正在运行的容器+历史运行过的容器
    • -n=5:显示最近创建过的容器,数字代表显示几条
    • -q:只显示容器的编号
  • docker run [可选参数] image /bin/bash:新建容器并且启动

    • -d:后台方式运行
    • -it:交互模式运行
    • -p: linux端口号:docker容器的端口:指定端口号(8080:8080)
    • –name:给容器起名字
  • exit :停止并且退出容器返回主机

  • ctrl+p+q:不停止并且退出容器返回主机

  • docker exec -it 容器id /bin/bash :新建窗口进入容器

  • docker rm 容器id:删除容器,但是不能删除正在运行的容器

    • docker rm $(docker ps -a -q):删除所有容器
  • docker start 容器id:开启容器

  • docker restart 容器id:重启容器

  • docker stop/kill 容器id:停止/杀死容器

    • docker stop $(docker ps -a -q):停止所有容器
  • docker logs --tail 容器id :查看容器日志

  • docker cp 容器id:文件路径 要拷贝到路径: 拷贝容器中的文件到linux上

  • docker inspect 容器id:查看容器详情信息

四、数据卷技术

4.1 数据卷挂载

  • docker run -it -v /本地linux路径:/容器中的路径 镜像 /bin/bash:指定路径挂载

  • docker run -it -v /容器中的路径 镜像 /bin/bash:不指定路径挂载,匿名挂载

  • docker run -it -v 文件名:/容器中的路径 镜像 /bin/bash:不指定路径挂载,具名挂载

    所有docker容器的内卷,没有制定目录的情况下都会在 /var/lib/docker/volumes/随机文件命名/_data


  • docker run -it -v /容器中的路径:ro/rw 镜像 /bin/bash

    ro(代表只读)或者rw(可读可写,不设置默认是rw)设置容器权限,只要设置了权限说明这个路径只能通过Linux来操作,容器是无法操作的

4.2 数据卷容器

  • docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD --name mysql02 -- volumes-form mysql01:容器之间的挂载,数据卷的生命周期一直持续到没有容器使用为止。

4.2 查看数据卷

  • docker volume list:查看Linux中所有数据卷

  • docker volume inspect 容器id:查看某一个容器数据卷挂载信息

五、dockerfile

5.1 制作镜像

FROM # 基础镜像

MAINTAINER #镜像维护者信息

RUN #构建容器时需要运行的命令

WORKDIR #进入容器后所在目录

VOLUME #数据卷挂在

EXPOSE #暴露端口

CMD #指定这个容器启动时候需要运行的命令,只有最后一个CMD会生效,会被替代。多个命令用&拼接

EXTRYPOINT #指定这个容器启动时候需要运行的命令,不会被替代,可以被追加

ONBUILD #

COPY #构建文件时可以将Linux文件复制到docker镜像中

ENV #设置环境变量 key values格式

5.2 构建镜像

docker build -f dockerfile文件路劲 -t 镜像名:[tag] .

5.3 发布镜像

  1. 上docker官网创建账号

  2. docker login -u 账号:登录

  3. docker push 作者名/镜像id 版本号:发布

六、docker0

容器和容器之间能互联是因为它们在同一个网络(docker0)下,但是docker0网络有一个缺陷就是不能使用域名代替ip地址,所有需要使用自定义网络。

  • docker network ls :查看所有docker网络

  • docker network inspect 网络id/网络名字` :查看某一个具体的网络信息

  • docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet:创建自定义网络

  • docker run -d -P --name my-tomcat --net mynet tomcat:使用自定义网络,开启容器

    一般情况下不指定网络默认使用docker0

  • docker network connect mynet tomcat01 :不同的网络中容器项目连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LinTianhong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值