容器基础(一)

镜像管理

docker search <container_name>    #搜索镜像

docker pull <container_name>[:<version>]    #拉去镜像(选择镜像及下载位置mariadb/xxx

docker push <container_name>    #推送镜像到云上(Docker Hub

docker images <container_name>    #查看当前镜像信息

-q     只显示镜像id

-a    列出本地所有镜像(含中间映像层)

--digests    显示镜像的摘要信息

--no-trunc    显示镜像完整信息

docker rmi <container_name>    #删除镜像

docker history <container_name>    #查看镜像历史被使用的信息

容器转换镜像(必须停止容器)

docker commit <container_id> <image_id>

docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]

镜像导入导出

docker save <images_name> > /opt/<namefile>.tar.gz    #将镜像导出成文件

docker load <images_name> < /opt/<namefile>.tar.gz    #将文件导入成镜像

中国官网镜像加速

vi /etc/docker/daemon.json

#添加后 

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"live-restore": true

}

 

容器查询

docker ps -a    #查看所有容器列表

docker container ls -a    #查看所有容器列表

docker logs <name_id>    #查看容器运行日志

    -f    表示查看实时日志
    -t    表示查看日志产生的日期

    since    指定了输出日志的开始日期,即只会输出在该日期之后的日志

    --tail=10    表示查看最后的十条,数字可以自己指定

docker top <name_id>    #查看容器中的进程信息

docker stats [<name_id>]    #查看容器的性能使用情况(CPUMEMNETBLOCK

docker inspect <name_id>    #容器详情

"Mounts": [

#挂载信息

...

...

docker inspect -f '{{.NetworkSettings.Networks.bridge.MacAddress}}' <name_id>    #容器参数查询

https://blog.51cto.com/u_12891/6687196

 

 

容器管理

容器运行管理

docker run -it -d --name centos7 -v /docker/:/docker/ -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true centos:7 init  创建centos7镜像赋予init宿主机特权

 -d    后台运行

-it    交互模式运行

-v    挂在主机上的文件或目录到容器内部(host_file:name_file, 绝对路径)

-p    端口映射(host_port:name_port-P随机端口映射)

-e    设备容器环境变量(ENV_VARIABLE=value)

--privileged=true    赋予主机root特权(默认普通权限,自定义特权--cap-add、--device

容器终端管理

docker exec -it <name_id> bash    #进入容器终端

docker attach <name_id>    #进入容器终端

docker exec -it <name_id> <command>   #远程在容器执行命令

容器启停、删除管理

docker start/stop/restart <name_id>    #启动/停止/重启容器

docker kill <name_id>    #强制停止当前容器

docker rm <name_id>    #删除容器及镜像

 

 

 

容器文件

文件映射

docker volume create <volume_name>    #创建数据卷

docker volume ls    #查看数据卷  

docker volume inspect <volume_name>    #查看数据卷具体信息

docker run -d -it --name xxx -v httpfile:/usr/local/apache/  httpd:latest    #将容器中/usr/local/apache/目录映射到httpfile数据卷中

#在修改宿主机上的映射文件后容器中也会自动更新,测试时修改了apache的端口容器重启后导致apache服务访问不了(容器映射的端口不会自动改变)

docker volume rm <volume_name>    #删除数据卷

注意:

1、容器中文件映射到本地宿主机的某个目录下时,不受容器的删除而导致文件数据丢失

2、容器文件被映射后又删除容器,重新创建容器映射该文件数据会恢复

https://zhuanlan.zhihu.com/p/584327825

 

 

 

容器文件复制

docker cp <name_id>:<path> <paht>    #从容器中复制文件到本地宿主机

docker cp <path> <name_id>:<path>    #从本地宿主机复制到容器中

 

镜像初始化Dockerfile, 本地执行docker build -f /path/to/a/Dockerfile .

https://www.cnblogs.com/ityouknow/p/8595384.html

FROM    # 基础镜像,一切从这里开始构建

FROM <镜像名>:<版本>

MAINTAINER    # 镜像是谁写的, 姓名+邮箱

RUN    # 镜像构建的时候需要运行的命令

RUN <命令>

COPY    # 类似ADD,将我们文件拷贝到镜像中

COPY <原路径> <镜像路径>

ADD    # 步骤,tomcat镜像,这个tomcat压缩包!添加内容到同目录

ADD <原路径(文件、URL、压缩包)> <镜像路径>

WORKDIR    # 镜像的工作目录

WORKDIR <类同cd命令>

VOLUME    # 挂载的目录

VOLUME <宿主机路径> <镜像路径>

EXPOSE            # 暴露端口配置

EXPOSE <宿主机端口> <镜像端口>

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

CMD <command> <maram1 ....>

ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加命令, 通过docker run执行的命令不会覆盖 

类同CMD参数

ONBUILD    # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。
ENV    # 构建的时候设置环境变量!

ENV <变量>=<>

USER    #指定运行镜像用户

USER <用户名>

 

镜像管理

docker search <container_name>    #搜索镜像

docker pull <container_name>[:<version>]    #拉去镜像(选择镜像及下载位置mariadb/xxx

docker push <container_name>    #推送镜像到云上(Docker Hub

docker images <container_name>    #查看当前镜像信息

-q     只显示镜像id

-a    列出本地所有镜像(含中间映像层)

--digests    显示镜像的摘要信息

--no-trunc    显示镜像完整信息

docker rmi <container_name>    #删除镜像

docker history <container_name>    #查看镜像历史被使用的信息

容器转换镜像(必须停止容器)

docker commit <container_id> <image_id>

docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG]

镜像导入导出

docker save <images_name> > /opt/<namefile>.tar.gz    #将镜像导出成文件

docker load <images_name> < /opt/<namefile>.tar.gz    #将文件导入成镜像

中国官网镜像加速

vi /etc/docker/daemon.json

#添加后 

{

"registry-mirrors": ["https://registry.docker-cn.com"],

"live-restore": true

}

 

容器查询

docker ps -a    #查看所有容器列表

docker container ls -a    #查看所有容器列表

docker logs <name_id>    #查看容器运行日志

    -f    表示查看实时日志
    -t    表示查看日志产生的日期

    since    指定了输出日志的开始日期,即只会输出在该日期之后的日志

    --tail=10    表示查看最后的十条,数字可以自己指定

docker top <name_id>    #查看容器中的进程信息

docker stats [<name_id>]    #查看容器的性能使用情况(CPUMEMNETBLOCK

docker inspect <name_id>    #容器详情

"Mounts": [

#挂载信息

...

...

docker inspect -f '{{.NetworkSettings.Networks.bridge.MacAddress}}' <name_id>    #容器参数查询

 

https://blog.51cto.com/u_12891/6687196

 

 

容器管理

容器运行管理

docker run -it -d --name centos7 -v /docker/:/docker/ -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true centos:7 init  创建centos7镜像赋予init宿主机特权

 -d    后台运行

-it    交互模式运行

-v    挂在主机上的文件或目录到容器内部(host_file:name_file, 绝对路径)

-p    端口映射(host_port:name_port-P随机端口映射)

-e    设备容器环境变量(ENV_VARIABLE=value)

--privileged=true    赋予主机root特权(默认普通权限,自定义特权--cap-add、--device

容器终端管理

docker exec -it <name_id> bash    #进入容器终端

docker attach <name_id>    #进入容器终端

docker exec -it <name_id> <command>   #远程在容器执行命令

容器启停、删除管理

docker start/stop/restart <name_id>    #启动/停止/重启容器

docker kill <name_id>    #强制停止当前容器

docker rm <name_id>    #删除容器及镜像

 

 

 

容器文件

文件映射

docker volume create <volume_name>    #创建数据卷

docker volume ls    #查看数据卷  

docker volume inspect <volume_name>    #查看数据卷具体信息

docker run -d -it --name xxx -v httpfile:/usr/local/apache/  httpd:latest    #将容器中/usr/local/apache/目录映射到httpfile数据卷中

#在修改宿主机上的映射文件后容器中也会自动更新,测试时修改了apache的端口容器重启后导致apache服务访问不了(容器映射的端口不会自动改变)

docker volume rm <volume_name>    #删除数据卷

注意:

1、容器中文件映射到本地宿主机的某个目录下时,不受容器的删除而导致文件数据丢失

2、容器文件被映射后又删除容器,重新创建容器映射该文件数据会恢复

https://zhuanlan.zhihu.com/p/584327825

 

 

容器文件复制

docker cp <name_id>:<path> <paht>    #从容器中复制文件到本地宿主机

docker cp <path> <name_id>:<path>    #从本地宿主机复制到容器中

 

镜像初始化Dockerfile, 本地执行docker build -f /path/to/a/Dockerfile .

https://www.cnblogs.com/ityouknow/p/8595384.html

FROM    # 基础镜像,一切从这里开始构建

FROM <镜像名>:<版本>

MAINTAINER    # 镜像是谁写的, 姓名+邮箱

RUN    # 镜像构建的时候需要运行的命令

RUN <命令>

COPY    # 类似ADD,将我们文件拷贝到镜像中

COPY <原路径> <镜像路径>

ADD    # 步骤,tomcat镜像,这个tomcat压缩包!添加内容到同目录

ADD <原路径(文件、URL、压缩包)> <镜像路径>

WORKDIR    # 镜像的工作目录

WORKDIR <类同cd命令>

VOLUME    # 挂载的目录

VOLUME <宿主机路径> <镜像路径>

EXPOSE            # 暴露端口配置

EXPOSE <宿主机端口> <镜像端口>

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

CMD <command> <maram1 ....>

ENTRYPOINT    # 指定这个容器启动的时候要运行的命令,可以追加命令, 通过docker run执行的命令不会覆盖 

类同CMD参数

ONBUILD    # 当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令。
ENV    # 构建的时候设置环境变量!

ENV <变量>=<>

USER    #指定运行镜像用户

USER <用户名>

 

posted @ 2023-11-14 15:19  ZhengLiming  阅读(12)  评论(0编辑  收藏  举报