docker基础应用:入门命令集锦

一、查看Docker基本信息

1.查看docker版本

docker version

2.查看docker系统信息

docker info

二、docker container

docker container 指令可省去container
1.连接到容器,不建议使用,原因如下
(1)使用attach访问容器,退出时会使容器退出运行
(2)多个终端同时使用attach实际上是镜像的

docker container attach <容器ID or 容器名>

2.访问正在运行的容器,且不干扰正在运行的服务

docker container exec -it <容器ID or 容器名> /bin/bash

3.将容器保存为新的镜像,参数有
-a 提交镜像的作者
-c 使用Dockerfile指令来创建镜像
-m 提交时的说明文字
-p 在commit时,将容器暂停

docker container commit <容器ID or 容器名> [ImageName]:[Version]
docker container commit -a 'mycon' a555yuc173er nginx:v0.1

4.创建容器

docker container create <镜像名:tag or 镜像ID>

5.检查容器里文件结构更改

docker diff <容器ID or 容器名>

6.查看容器详细信息,-f为可选参数,用于查看信息中指定值

docker container inspect <容器ID or 容器名>
docker container inspect -f='{{.State.Pid}} {{.Id}}' <容器ID or 容器名>

7.查看容器中运行的进程

docker container top <容器ID or 容器名>

8.重命名容器

docker container rename 原容器名称 新容器名称

9.列出所有容器

docker container ls -a

10.为一个或多个更新容器配置文件

# 将cpu升级为2核,更多配置参数详见官方文档
docker container update test --cpus 2 

11.启动、暂停容器

docker container start <容器ID or 容器名>
docker container stop <容器ID or 容器名>
docker pause <容器ID or 容器名>
docker unpause <容器ID or 容器名>
# 交互式容器
docker container run -it  --name "NAME"  <镜像ID or 镜像名:tag> /bin/bash
# 守护式容器
docker container run -d  -p 8080:80 --name "NAME"  <镜像ID or 镜像名:tag>

11.删除容器

docker container rm <容器ID or 容器名>
# 删除所有容器
docker container rm `docker ps -a -q`

12.阻塞运行直到容器停止,然后打印出它的退出代码

docker wait <容器ID or 容器名>

13.删除所有停止运行的容器

docker container prune

三、docker images

1.列出所有镜像

# 加-a参数可以显示出Dockfile编译时的中间层镜像
docker image ls -a
docker images

2.删除所有镜像

docker image rm `docker image ls -a`
docker rmi $(docker image ls -a)

3.保存、恢复镜像

docker save <容器ID or 容器名> -o a.tar
docker save <容器ID or 容器名> > a.tar
docker load -i   a.tar
docker load < a.tar

4.查看镜像详细信息

docker image inspect <镜像ID or 镜像名:tag>

5.移除所有未使用的镜像

# 删除所有未被 tag 标记和未被容器使用的镜像:
docker image prune
# 删除所有未被容器使用的镜像
docker image prune -a

6.下载\上传镜像

docker pull centos:latest
docker push 10.10.10.10/test/centos:latest

7.标记本地镜像,将其归入某一仓库

docker image tag ubuntu:18.10 lol/ubuntu:v3

四、Docker Volume

Docker Volume有两种方式

  • bind mount 手动指定目录,目录需从根目录开始,不具备可移植性
  • volume Docker管理,位于/var/lib/docker/volumes
    以下是volume挂载实例
# 自动创建的onevolume位于/var/lib/docker/volumes
docker run -it -v onevolume:/mydata centos /bin/bash
#匿名挂载,目录随机生成
docker run -it -v /mydata centos /bin/bash
# 手动创建数据卷
docker volume create twovolume
docker run -it -v twovolume:/mydata centos /bin/bash

以下是bind mount模式挂载实例

# host目录需从根目录开始、由于windows、linux系统结构不同,不具备移植性
docker run -it -v $(pwd)/data:/condata centos /bin/bash

tips:容器可以通过–volume-from参数挂载数据卷容器
tips: Dockerfile中可以通过VOLUME /dic来申明数据卷

五、docker network

Docker有四种默认网络模式:

  • host模式 共用宿主机的端口和网络
  • container模式 创建的容器不会创建自己的网卡,而是和指定容器共享IP和端口
  • None模式 该模式关闭了容器的网络功能
  • Bridge模式 (默认) 所有容器都会连接到docker0虚拟网桥,并通过docker0实现与宿主机的通信
    一些跨主机网络方案:
  • overlay
    方式 跨节点容器网络互联
  • macvlan方式 linux kernel模块,性能好
  • flannel、weave、calico等第三方方案
    想要详细了解docker network请访问传送门

docker run --network=<network>用于指定容器连接的网络
docker run --net=host/none/bridge/container:<容器名字or容器id>/指定网络模式(/表示或者)
docker network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.1 -o parent=eth1 mac_net1创建macvlan网络

docker network基本命令

  1. docker network ls用于显示已创建网络
  2. docker network connect [OPTIONS] NETWORK CONTAINER将容器连接到一个网络
  3. docker network create [OPTIONS] NETWORK创建网络
  4. docker network disconnect [OPTIONS] NETWORK CONTAINER将容器网路断开
  5. docker inspect [OPTIONS] NAME|ID [NAME|ID...]显示网络详细信息
  6. docker network prune移除未使用的网络
  7. docker network rm NETWORK [NETWORK...]删除网络

六、DockerFile

基础指令:
FROM指定基础镜像,例:FROM centos:latest
RUN执行命令(建议多行命令使用&&连接,因为每一条run命令都会生成一个中间层)

#shell格式 
RUN echo “hello world”
# exec格式
RUN ["ls","-l","-a"]

COPY复制文件,仅限于本地复制,源路径可以有多个

COPY <源路径>... <目标路径>
COPY ["<源路径>",... "<目标路径>"]

ADD功能等同于COPY但更强大,ADD支持远程复制和自动解压

ADD 10.10.10.10:3333/ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /
下载后的文件权限默认权限为 600 。

CMD容器启动后执行的第一条命令

shell 格式: CMD <命令>
exec 格式: CMD ["可执行文件", "参数1", "参数2"...]
注意:多条CMD命令只会执行最后一条

ENTRYPOINT功能格式近似于CMD但ENTRYPOINT不会受到容器启动时附加的参数如/bin/bash影响
ENV设置环境变量

ENV <key1>=<value1> <key2>=<value2>...
ENV q=1 e=2

ARG构建参数,容器启动后不会保留
VOLUME数据卷挂载

VOLUME <路径>
VOLUME ["<路径1>", "<路径2>"...]

EXPOSE提供开放端口如EXPOSE 22
WORKDIR指定工作目录
HEALTHCHECK健康检查
MAINTAINER创建者信息,格式为MAINTAINER user_name user_email
ONBUILD指定该镜像作为基础镜像时执行的命令
docker build -t name:tag构建Dockerfile镜像
参数-t指定生成镜像的名字
参数-f指定Dockfile文件的路径,因为Dockfile可能不在当前目录

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值