Docker命令的基本使用

dockerhub官方链接

在不知道命令时,也可以使用--help使控制台给出提示

镜像操作命令

docker build -t 自定义镜像名:自定义版本号  Dockerfile所在的目录 ——利用Dockerfile创建镜像

创建一个名为Dockerfile的文件,写入构建镜像所需要的指令Docker Dockerfile

# 指定基础镜像,这是一个会自动配置jdk8环境的镜像
FROM java:8-alpine
# 拷贝java项目的包
COPY ./docker-demo.jar /tmp/app.jar
# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

# 常用的还有
# ENV JAVA_DIR=/usr/local   配置环境变量
# RUN cd $JAVA_DIR && tar -xf ./jdk8.tar.gz && mv ./jdk1.8.0_144 ./java8   构建镜像过程中的命令,解压jdk8.tar.gz,文件改名为java8

docker push 镜像名:版本号 ——推送镜像

docker pull 镜像名:版本号 ——拉取镜像

docker save -o 文件名 镜像名:版本号 ——镜像导出(例如docker save -o redis.tar redis:latest)

docker load -i 文件名 ——镜像导入

docker images  ——查看所有镜像

docker rmi 镜像名:版本号 ——删除镜像

容器操作命令

docker run --name 自己取个容器名 -p 主机端口:容器端口 -v 数据卷名:容器内目录 -d(表示后台运行) 镜像名:版本号 ——运行容器,具体的运行配置可以查看dockerhub官网

docker stop 容器名 ——停止容器

docker start 容器名 ——解除停止容器

docker pause 容器名 ——暂停容器

docker unpause 容器名 ——解除暂停容器

docker ps ——查看所有运行中的容器,加-a查看所有启动的容器

docker logs 容器名 ——查看容器日志,加-f持续监控日志输出

docker rm 容器名 ——删除容器

docker exec -it 容器名 bash ——进入容器,使用bash执行命令

数据卷操作命令

docker volume create 取个数据卷名 ——创建数据卷

docker volume ls ——列出所有数据卷

docker volume inspect 数据卷名 ——查看数据卷的详细信息,可以查看数据卷的挂载点

docker volume prune ——删除本地所有未使用的数据卷

docker volume rm 数据卷名 ——删除数据卷

docker run --name 容器名 -v 数据卷名:容器内目录/容器内文件 镜像名:版本号 ——上述运行容器中加个-v,可添加数据卷绑定

利用DockerCompose一键启动多项服务

先下载一个docker-compose文件,可以直接输入命令下载,也可以自己去网上找其他渠道提供的docker-compose文件

# 安装
curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

给文件提供可执行权

# 修改权限
chmod +x /usr/local/bin/docker-compose

下载一个DockerCompose命令自动补全的命令补丁,方便使用DockerCompose

curl -L https://raw.githubusercontent.com/docker/compose/1.29.1/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

可能无法解析raw.githubusercontent.com域名,可以给hosts文件添加一句话,199.232.68.133为该域名的IP地址

echo "199.232.68.133 raw.githubusercontent.com" >> /etc/hosts

新建一个docker-compose.yml文件,然后在该文件目录下,执行docker-compose up -d一键部署以下服务

version: "3.2" #版本
services:
  nacos: #启动后的所有容器之间可以用该容器名来互相访问,无需对外暴露端口
    image: nacos/nacos-server #nacos在线镜像地址
    environment:
      MODE: standalone #nacos启动模式
    ports:
      - "8848:8848" #对外暴露端口
  mysql:
    image: mysql:5.7.25 #mysql本地镜像
    environment:
      MYSQL_ROOT_PASSWORD: 123 #mysql密码配置
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql" #数据卷配置
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service #该目录下存在一个Dockerfile文件,启动后边建立一个临时镜像,然后启动容器
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"

建立一个本地的Docker镜像仓库

使用docker push时,需要获取Docker信任,如果私服采用的是http服务,则需要进行以下配置,来获取Docker信任

# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://192.168.230.100:8080"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker

利用DockerCompose部署一个具有图形化的docker镜像仓库

version: '3.0'
services:
  registry: #仓库注册
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui: #ui界面
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=个人私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

新建一个镜像

docker tag nginx:latest 192.168.230.100:8080/nginx:1.0 #复制一个镜像,镜像名需要有ui界面的地址前缀,该地址在之前被设置过信赖

接下来就可以推送和拉取镜像了

docker push 192.168.230.100:8080/nginx:1.0
docker pull 192.168.230.100:8080/nginx:1.0

 

posted @ 2024-03-02 00:42  凌碎瞳缘  阅读(15)  评论(0编辑  收藏  举报