美文网首页
docker及dockers-compose

docker及dockers-compose

作者: 沉默固执老阿姨 | 来源:发表于2021-09-07 16:18 被阅读0次

    docker 

    自动化构建镜像,根据 dockerfile 打包镜像 ,启动时得到单独的container.

    Dockerfile 编写

    # 设置基础镜像

    FROM nginx

    # 定义作者

    MAINTAINER xxx

    # 将dist文件中的内容复制到 xxxx这个目录下面

    COPY dist/  xxx

    # COPY nginx.conf /etc/nginx/nginx.conf

    COPY default.conf /etc/nginx/conf.d/default.conf

    RUN echo 'ok'

     打包镜像

    sudo docker build -t star/eyebox_ui_settingpage:V1.0.3 .

    运行镜像

    sudo docker run -itd --network=host --restart=always star/eyebox_ui_settingpage:V1.0.3

    删除运行中的容器和镜像

    sudo docker stop containerId  (停止一个运行中的容器)

    sudo docker start containerId  (启动一个或多个已经被停止的容器)

    sudo docker restart containerId  (重启容器)

    sudo docker rm containerId (删除一个或多个 容器)

    sudo docker rmi containerId ( 删除一个或多个 镜像)

    sudo docker kill containerId (杀掉一个运行中的容器)

    $ docker ps // 查看所有正在运行容器

    $ docker stop containerId // containerId 是容器的ID

    $ docker ps -a // 查看所有容器

    $ docker ps -a -q // 查看所有容器ID

    $ docker stop $(docker ps -a -q) //  stop停止所有容器

    $ docker  rm $(docker ps -a -q) //  remove删除所有容器

    docker连接私有库

    1.下载Docker Desktop 软件

    2.启动Docker Desktop软件,若启动不起来,可能需要更新部分基础软件

    3.进入 Docker Desktop 软件,右上角设置按钮,选择 Docker Engine按钮,在 insecure-registries 中填入私有库的地址(Window)

    修改/etc/docker/daemon.json(),添加地址(Linux)

    原因:仓库使用的自建TLS证书(权威机构发布的要钱),需要将仓库地址,添加到Docker的“非安全仓库列表”

    4.在终端 登录私有库           sudo docker login '地址'

    5.本地打包镜像必须要把私有库地址带上  

    docker tag imageID xxx.xxx.xxxx:8081/star/eyebox_ui_settingpage:V1.0.3

    6.推送镜像到私有库: docker push xxx.xxx.xxxx:8081/star/eyebox_ui_settingpage:V1.0.3

    拉取镜像到本地 : docker pull xxx.xxx.xxxx:8081/star/eyebox_ui_settingpage:V1.0.3

    操作解析

    Docker rm 命令

    语法

    dockerrm[OPTIONS] CONTAINER [CONTAINER...]

    OPTIONS说明:

    -f :通过SIGKILL信号强制删除一个运行中的容器

    -l :移除容器间的网络连接,而非容器本身

    -v :删除与容器关联的卷

    Docker rmi 命令

    语法

    docker rmi [OPTIONS] IMAGE [IMAGE...]

    OPTIONS说明:

    -f :强制删除

    --no-prune :不移除该镜像的过程镜像,默认移除

    Docker prune 命令

    删除 所有未被 tag 标记和未被容器使用的镜像:

    docker image prune

    删除 所有未被容器使用的镜像:

    docker image prune -a

    删除 所有停止运行的容器:

    docker container prune

    删除所有未被挂载的卷:

    docker volume prune

    删除所有网络:

    docker network prune

    删除 docker 所有资源:

    docker system prune

    docker run 命令

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --name="nginx-lb": 为容器指定一个名称;

    --network=host : 网络使用 host 模式,和主机共用ip

    --restart=always :重启时,能自动重启

    例:sudo docker run -itd --network=host --restart=always --name="docker_name" star/docker_name

    注意:

    docker停止镜像-Dockerstop或者Dockerkill为何不能停止容器

    因为你启动时加了参数dockerrun--restart=always,这个意思是无论容器时正常还是非正常手动关闭都会重启,

    可以修改为dockerrun--restart=on-failure,异常关闭时重启容器,还有其他几个参数自己查看。


    docker-compose

    自动化编排容器,根据 docker-compose.yml 启动时是一个服务,由多个container 共同组成,并且端口、配置等由 docker-compose 定义好.

    Docker Compose 将所管理的容器分为三层,分别是工程(project)、服务(service)、容器(container)

    Docker Compose 运行目录下的所有文件(docker-compose.yml)组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖,一个服务可包括多个容器实例

    Docker Compose 常用命令

    docker-compose ps  (列出所有运行容器)

    docker-compose logs (查看服务日志输出)

    docker-compose port  (打印绑定的公共端口)

    docker-compose start / stop / rm  xxx (启动/停止/删除 指定服务已存在的容器)

    docker-compose down ( 删除所有容器,镜像)

    docker-compose build (构建或者重新构建服务)

    docker-compose up (构建重启容器)

    相关文章

      网友评论

          本文标题:docker及dockers-compose

          本文链接:https://www.haomeiwen.com/subject/btcpwltx.html