自学内容网 自学内容网

docker

Docker常用命令

#版本号
docker version 
​
# 信息
docker info   
​
#启动docker
systemctl start docker  
​
#关闭docker
systemctl stop docker   
​
#重启docker
systemctl restart docker  
​
#设置随服务启动而自启动
systemctl enable docker   
​
#查看有哪些命令
docker -help  
​
#查看镜像列表
docker images  
​
#搜索镜像
docker search 镜像名
​
#拉取镜像(tag:版本号)
docker pull 镜像名
docker pull 镜像名:tag
​
删除镜像
#删除一个
docker rmi -f 镜像名/镜像ID
​
#删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
​
#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
​
#查看正在运行的容器列表
docker ps
#查看所有容器
docker ps -a
​
#运行一个容器
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器 起的名字  /bin/bash  交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
​
#eg:
#1. 拉取redis 镜像
docker pull redis:5.0.5
#2.命令启动
docker run -it -d --name redis001 redis:5.0.5 /bin/bash

修改镜像地址

//编辑此文件

vim /etc/docker/daemon.json

//将一下地址复制到编辑文件中

{

        "registry-mirrors": [

        "https: //do.nark.eu.org",

        "https: //dc.j8.work",

        "https: //docker.m.daocloud. io",

        "https: //dockerproxy. com",

        "https: //docker.mirrors.ustc.edu.cn",

        "https: //docker.nju.edu. cn"

        ]

}

退出并保存编辑的文件

修改完相应的信息后,按键盘左上角的Esc键,退出编辑模式,然后保存编辑的文件,输入【:wq】(冒号wq),保存并退出

查看镜像

docker images

EPOSITORY          TAG         IMAGE ID      REATED             SIZE 

hello-world              latest    9c7a54a9a43c  6 months ago      13.3k     

BREPOSITORY:仓库源

TAG:镜像的标签,版本号

IMAGE ID:镜像的id

CREATED:镜像创建的时间

SIZE:大小

可选项:

-a,--al:显示所有镜像,包括中间映像。

--digest:显示镜像的摘要信1。

-f,--filte:根据提供的条件过滤输1。

--format:指定返回值的模板文1。

--no-trun:显示完整的镜像信-q,

--quiet#只显示镜像的id

 

运行容器

docker run[可选参数数] images

#参数说明

--name="Name”  容器名字用来区分名字

-d  后台方式运行

-it  使用交互方式运行

-p 指定容器的端口

-v  文件映射数据卷:容器内目录只能在容器创建时使用或者-V本地目录:器内目录(必须已/./开头)

docker run -it centos /bin/bash   #启动并进入容器

exit  #从容器中退到主机

数据卷

是一个虚拟目录,是容器内目录与宿主机目录之间的桥梁

//创建数据卷

docker volume create

//查看所有数据卷

docker volume ls

//删除某个数据卷

docker volume rm

//查看某个数据卷详情

docker volume inspect

//清除数据卷

docker volume prune

DockerFile常用指令

FROM:用于指定基础镜像。
MAINTAINER:用于指定维护者信息。
RUN:用于执行命令。
CMD:用于执行特定的命令。
EXPOSE:用于标明这个镜像中的应用将会监听某个端口,并且希望能将这个端口映射到主机的网络界面上,使容器内的应用可以通过端口和外界交互。
ENV:用于设置环境变量。
ADD:用于从指定的URL地址下载内容复制到容器的文件系统中,还可以将压缩打包格式的文件解压后复制到指定位置。
COPY:用于将文件复制到容器中。
ENTRYPOINT:用于指定容器启动后执行的命令。
USER:用于设置运行容器时的用户。
WORKDIR:用于设置工作目录。
VOLUME:用于设置卷。
ONBUILD:用于设置当此镜像作为其他镜像的基础镜像时,所执行的构建操作。
​

docker-compose

个单独的容器项目,我们很容易可以使用一个Dockerfile模板文件。在工作中,经常会碰到需要多个容器相互配合的微服务项目来完成某项任务的情况,例如要实现一个web项目,除了web服务容器本身,往往还需要再加上后端的数据库服务容器,负载均衡容器等基础服务,还有多个微服务项目需要启动,单独手动启动肯定会相当繁琐,那么docker-compose就应运而生了

 
安装docker-compose

#下载docker-compose文件
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#将文件复制到/usr/local/bin环境变量下面
mv docker-compose /usr/local/bin

#给他一个执行权限
chmod +x /usr/local/bin/docker-compose

#查看是否安装成功
docker-compose -version

卸载docker-compose

# 卸载docker-compose
rm  /usr/local/bin/docker-compose

 使用docker-compose编排springboot项目

1.创建docker-compose目录

mkdir ~/docker-compose
cd  ~/docker-compose

2. 编写docker-compose.yml文件

version: "3"
services:

  redis:
    image: redis:alpine
    ports:
      - "6379"
    networks:
      - frontend
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
 
  db:
    image: postgres:9.4
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - backend
    deploy:
      placement:
        constraints: [node.role == manager]
 
  vote:
    image: dockersamples/examplevotingapp_vote:before
    ports:
      - 5000:80
    networks:
      - frontend
    depends_on:
      - redis
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
      restart_policy:
        condition: on-failure
 
  result:
    image: dockersamples/examplevotingapp_result:before
    ports:
      - 5001:80
    networks:
      - backend
    depends_on:
      - db
    deploy:
      replicas: 1
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
 
  worker:
    image: dockersamples/examplevotingapp_worker
    networks:
      - frontend
      - backend
    deploy:
      mode: replicated
      replicas: 1
      labels: [APP=VOTING]
      restart_policy:
        condition: on-failure
        delay: 10s
        max_attempts: 3
        window: 120s
      placement:
        constraints: [node.role == manager]
 
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8080:8080"
    stop_grace_period: 1m30s
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
 
networks:
  frontend:
  backend:
 
volumes:
  db-data:

启动docker-compose

docker-compose -f docker-compose.yaml up -d  //-f调用文件。-d:开启守护进程

docker-compose.yml文件配置常用字段及说明

字段    说明
build    指定Dockerfile文件名(要指定的Dockerfile文件需要在build标签的子级标签中用dockefile标签指定)
dockerfile    构建镜像上下文路径
context    可以是dockerfile路径,或者时执行git仓库的url地址
images    指定镜像(已存在)
command    执行命令,会覆盖容器启动后默认执行的命令(会覆盖dockefile中的CMD指令)
container_name    指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量。
deploy    指定部署和运行服务相关配置,只能在swarm模式使用
environment    添加环境变量
networks    加入网络,引用顶级networks下条目
network-mode    设置容器的网络模式
ports    暴露容器端口,与-p相同,但是端口不能低于60
volumes    挂载一个宿主机目录或命令卷到容器,命令卷要在顶级volumes定义卷名称
volumes_from    从另一个服务或容器挂载卷,可选参数:ro和rw(仅版本‘2’支持)
hostname    在容器内设置内核参数
links    连接诶到另一个容器,- 服务名称[ : ]
privileged    用来给容器root权限,注意是不安全的,true
restart    重启策略,定义是否重启容器1、no,默认策略,在容器退出时不重启容器2、on-failure,在容器非正常退出时(退出状态非0),才会重启容器3、on-failure:3 在容器非正常退出时,重启容器,最多重启3次4、always,在容器退出时总是重启容器,5、unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。
depends_on    此标签用于解决容器的依赖,启动先后问题。如启动应用容器,需要先启动数据库容器。php:depends_on:- apache- mysql

 


原文地址:https://blog.csdn.net/xq514863/article/details/143673998

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!