【中间件】使用率较高的Docker命令

本文详细介绍了Docker的基本概念、组件、架构及其历史。内容涵盖Docker的客户端、守护进程、镜像和容器,以及Docker的常用命令,如查看版本、管理镜像和容器、构建及推送镜像等。此外,还讨论了容器的创建、启动、停止、登录、拷贝及备份恢复等操作,并提到了Docker网络和多容器应用的部署。
摘要由CSDN通过智能技术生成

首先了解下Docker的百度释义:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

组成

一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器

架构

在这里插入图片描述

起源

Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。

历史

docker-ce 社区
docker 是还没商业化之前的版本。
docker-ee 是从17版本开始的。docker默认c7安装的是13版本的。从17年开始有的ee商业版本。
yum install docker-ce | docker| docker-ee 是有区别的的!!!!

1、命令

基础信息

docker -v       #查看版本号
docker version  # 查看详细版本信息,重点包括cc还是ce版本
docker info     #查看容器的运行详细信息

查看本地镜像

docker images
docker image ls
docker search + 镜像名字 搜索镜像 	

看容器相关

docker  ps       查看所有容器
docker  inspect  容器名字     查看容器本身的详细信息
docker  log      容器名字     容器里面一定有执行的程序,这个就是查看程序的输出结果。

导入导出 - 删除新建

导出镜像:
docker image save centos > docker-centos6.9.tar.gz
导入镜像:
docker image load -i docker-centos6.9.tar.gz

构建镜像, 当前目录有Dockerfile 此名字的文件!

docker build -t nginx:test . #名字需要自己指定

删除镜像:

docker image rm centos:latest
docker image rm 578c3

推送指定镜像到docker镜像源服务器(默认从官方仓库获取)

(docker login #需要先登录仓库)
一般会tag一个带ip的标签给镜像,会重新复制一份,如果不带版本,默认latest,没有此版本会报错。
然后直接用命令推送
docker tag nginx:latest 10.0.0.11:80/nginx:latest
docker pull daocloud.io/huangzhichong/alpine-cn:latest   拉(不写地址就是默认官方下载)
docker push 10.0.0.11:80/nginx:latest   推

显示一个镜像的历史

docker history image_name   

注意:镜像不能直接修改,所以没有修改命令

2、容器相关

容器是一个程序,是从镜像启动的。一个镜像如果没有一直执行的程序,容器启动并执行完后就会关闭。
每个容器都是一个微型root文件系统,支持bash登录。
一旦创建容器,就会生成容器的文件。而且会越来越多。记得用容器命令清理不用的容器。

3.创建-启动,删除,停止

注意:it 参数 接收用户输入+伪终端 为后期用户登录容器的作用。
docker create -it ubuntu:latest
docker start af   #名字是容器的名字或容器id的前缀都可以

==docker run ubuntu:18.04 /bin/echo 'Hello World'
docker run -p 80:80 -v /data:/data -d nginx:latest   #附带端口转发和本地目录挂载
docker run -d -it --name busybox_2 --link busybox_1 busybox /bin/sh -c "while true;do sleep 3600;done"     #link命令一般都会重新定义容器为另一个名字,只能自己识别,并且是单向的。

注意:一般是-itd参数 d是后台运行,不会应为操作的终端退出而终止。

docker rm  容器名字
docker stop 容器名字

操作容器-登录,查看,修改
官方推荐 多终端同时登录,会自动同步,一旦一个终端卡住,所有无法使用
docker attach [--detach-keys[=[]]] [--no-stdin] [--sig-proxy[=true]] CONTAINER

常用登录方式

docker exec [-d|--detach] [--detach-keys[=[]]] [-i|--interactive] [--privileged] [-t|--tty] [-u|--user[=USER]] CONTAINER COMMAND [ARG...]
docker exec -it 243c32535da7 /bin/bash

注意:容易混淆的概念 run针对的是镜像 exec是容器。第一次创建容器的时候可以用run进入容器。之后再用这个命令就是重复创建并进入。

exec 就是进入容器
#因为都是bash 的界面容易混淆。run后面不写会有默认的启动命令,但是exec不写就报错。
后面可以直接写 容器里面有的命令,直接操作容器。
docker run -it nginx:latest /bin/bash
docker exec -it 243c32535da7 /bin/bash

拷贝

docker cp 文件  容器id:目录  直接拷贝文件。不能用*,会报错。

容器的备份恢复

docker commit  -a "cheng" -m "add file"  nginx01  增加作者和描述把容器保存为镜像。

注意:import方式,会破坏原来的镜像分层,只保留最后一层,一般不用。

导入

docker export -o hello1.tar a4d
docker export a4d > hello2.tar

导出

docker import 镜像名字    容器名字

save load方式,常用。

docker save -o nginx.tar nginx:latest
docker save > nginx.tar nginx:latest

docker load -i nginx.tar
docker load < nginx.tar

多容器启动程序

使用 Dockerfile 定义应用程序的环境。
使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
最后,执行 docker-compose up 命令来启动并运行整个应用程序。

网络
加入同一网络的容器,互ping 主机名是可以通的。

docker network create -d bridge test-net
docker run -itd --name test1 --network test-net ubuntu /bin/bash
docker run -itd --name test2 --network test-net ubuntu /bin/bash
docker network ls

登录容器,互ping是可以通的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值