docker(2)命令使用基础

devops 专栏收录该内容
4 篇文章 0 订阅


在这里插入图片描述

docker 命令

docker version

Client: Docker Engine - Community
 Version:           20.10.5
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        55c4c88
 Built:             Tue Mar  2 20:18:20 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.5
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       363e9a8
  Built:            Tue Mar  2 20:16:15 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)

Server:
 Containers: 31
  Running: 3
  Paused: 0
  Stopped: 28
 Images: 21
 Server Version: 20.10.5
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc version: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.8.0-44-generic
 Operating System: Ubuntu 20.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.815GiB
 Name: ubuntu
 ID: XDOJ:KVPQ:XO34:J6KB:GB3R:E5ED:FVJY:FJOM:EIHJ:C2XO:CKQ7:3SJQ
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Registry Mirrors:
  https://u5bzfc43.mirror.aliyuncs.com/
 Live Restore Enabled: false

docker inspect <容器id>/<容器名字>/<镜像名称> 查看容器或者镜像的元数据

docker stats <容器id>/<容器名字>查看docker 内存状态

CONTAINER ID   NAME           CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
9636058741ee   jenkins-test   0.45%     420.3MiB / 3.815GiB   10.76%    6.14kB / 3.57kB   10.1MB / 2.36MB   34

重启 docker

sudo service docker restart

卸载 docker

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

docker 镜像命令的使用

docker search 镜像名称 查找镜像

我们可以从 Docker Hub 网站来搜索镜像 docker hub

docker pull 镜像名称:TAG 下载镜像

dockers pull [options] NAME [:TAG]

使用 --registry-mirror 选项,修改仓库地址

docker rmi 镜像名称 删除镜像

比如我们删除 hello-world 镜像
docker rmi hello-world

docker images 查看本地镜像列表

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
<none>        <none>    a2e7b2ad3bf1   4 hours ago    628MB
yztubuntu     1.0       6f818c8fc1b4   2 days ago     170MB
hello-world   latest    d1165f221234   11 days ago    13.3kB
tomcat        9.0       040bdb29ab37   2 months ago   649MB
nginx         latest    f6d0b4767a6c   2 months ago   133MB
mysql         5.6       6e68afc1976f   2 months ago   302MB
centos        latest    300e315adb2f   3 months ago   209MB
ubuntu        latest    f643c72bc252   3 months ago   72.9MB
redis         3.2       87856cc39862   2 years ago    76MB
jenkins       latest    cd14cecfdb3a   2 years ago    696MB

同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有 15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

构建一个新的镜像

1.通过 commit 构建新的镜像

1.启动容器
2.将自己操作过的容器退出,然后通过commit 提交为一个新的镜像。
docker commit -a=“yuzt” -m “the reason you commit” <容器id> 新镜像名称:TAG

2.通过Dockerfile+docker build 构建新的镜像

docker build -f centosDocFile -t yztcentos:0.1 .

–no-cache=true 选项 表示不缓存

3.镜像的构建过程 docker history 镜像名

docker 容器命令使用

docker run 流程

docker 是一个 C/S ,守护进程。如同MySQL 运行方式。

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.

docker run 启动容器

docker run [参数] imageName [cmd]
–name 自定义容器名字
-d 容器后台运行,不会进入容器
-i (–interactive)
-t (–tty) 交互式终端
-p

  1. -p ip:主机端口:容器端口
  2. -p 主机端口:容器端口
  3. -p 容器端口

-P 随机指定端口

-d 希望 docker 的服务是在后台运行

docker run -itd --name ubuntu-test ubuntu /bin/bash

–rm 希望测试完容器后,自动删除该容器

docker run -it --name tomcat-test --rm tomcat:9.0

docker start 启动一个已停止的容器

docker start  [-i] <容器id>/<容器名字>

docker restart 重启一个容器

docker restart <容器 ID>/<容器名字>

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

docker attach <容器id>/<容器名字>
docker exec   <容器id>/<容器名字>

推荐大家使用 docker exec 命令,因为 exit 退出容器终端,不会导致容器的停止。

docker exec -it tomcat-test /bin/bash

docker attach 进入的容器,使用ctrl+P+Q,退出容器也不会停止容器

docker run <参数> imageName 和 docker exec <参数> composeName

docker run :根据镜像创建一个新的容器并运行一个命令,操作的对象是 镜像;
docker exec :在已经运行的容器中执行命令,操作的对象是 容器。

退出容器

exit
Ctrl +P +Q 退出容器但是不停止容器状态

docker stop/kill 停止一个容器

docker stop <容器 ID>
docker kill <容器 ID>

查看容器状态

docker ps 显示正在运行的容器
docker ps -a 所有运行过的容器。
-n=? 显示最近创建的容器
-q 只显示正在运行的容器编号

导出和导入容器

导出容器
如果要导出本地某个容器,可以使用 docker export 命令。

docker export 1e560fca3906 > ubuntu.tar

导入容器
可以使用 docker import 从容器快照文件中再导入为镜像,
以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
删除容器

docker rm -f <容器 ID>/<容器名字>

docker port 查看端口映射

docker port <容器id> /<容器名字> 来查看容器端口的映射情况

查看容器logs

docker logs -t -f  --tail=n <容器id>/<容器名字>

查看运行的容器中进程信息docker top

docker top <容器名>

容器内和宿主机相互拷贝文件 docker cp

docker cp 容器id:容器内路径 目的地主机路径
实例

将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp  96f7f14e99ab:/www /tmp/

调整容器运行最大内存

容器数据卷

-v /home/win/wincom-webapp/:/webapp
表示将宿主机目录/home/win/wincom-webapp/
挂在到容器中的/webapp目录上

联合文件系统

发布镜像到docker hub

docker login -u username -p passwd
docker push yuzt/imageName:TAG
docker logout

发布到阿里云

登录阿里云,
docker login --username=yuzt registry.cn-beijing.aliyuncs.com
docker push
参考网上文档

Docker创建容器后无法update更新

更新源

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

qq_31759493

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值