关于Docker常用操作以及挂载相关

用docker部署应用

镜像

  • 虚拟机的一组静态磁盘文件

  • 可以任意下载、复制、分发

    • hub.docker.com
  • 镜像名称,由两部分组成

    • Repository:Tag
    • 名称:标签
    • 如果不写标签,默认标签是latest
  • 镜像的常用命令

    # 下载镜像
    docker pull 镜像名称
    
    # 镜像列表
    docker images
    
    # 为镜像添加新的名称
    docker tag redis my-redis:v1
    docker tag redis redis-tedu:v2
    
    # 删除镜像的名称
    # 删除最后一个名称时,会把镜像磁盘文件一起删除
    # remove image
    docker rmi my-redis:v1
    docker images
    
    # 导出镜像到压缩文件
    docker save rabbitmq:management benwang6/cerebro:0.9.4 | gzip > a.gz
    
    # 从压缩文件导入,加载镜像
    # 先删除
    docker rmi rabbitmq:management benwang6/cerebro:0.9.4
    # 再导入
    docker load -i a.gz
    

常用容器命令:

# 启动容器
docker run mariadb

# 在前台启动,占用命令行
docker run redis

# 查看容器
docker ps        # 运行状态的容器
docker ps -a       # all

# 查看镜像中设置的默认启动命令
docker history redis

docker history mariadb

docker history rabbitmq:management

# 覆盖 CMD 设置的默认命令
docker run redis pwd

docker run redis ls -a -l

# -i 交互 -t 终端
docker run -it redis bash

exit

docker ps -a

镜像中设置默认启动命令:

- CMD

  ```shell
  CMD ["redis-server"]
  
  # "java -jar /opt/cs/cs.jar"
  CMD ["java", "-jar", "/opt/cs/cs.jar"]
  • ENTRYPOINT

    # "java -jar /opt/cs/cs.jar"
    ENTRYPOINT ["java"]
    CMD ["-jar", "/opt/cs/cs.jar"]
    
# 覆盖ENTRYPOINT
docker run --entrypoint ls redis -a -l

-d 后台运行

docker run -d \
redis

docker ps

docker logs 容器ID前3位

进入容器,执行容器中的命令

docker exec -it cbc pwd

docker exec -it cbc touch a.txt

docker exec -it cbc ls -a -l

docker exec -it cbc bash

exit

docker ps

容器命名

docker run -d --name r1 \
redis

docker run -d --name r2 \
redis

docker ps

docker logs r1

docker stop r1 r2

docker start r1 r2

–restart=always 让容器可以随系统自动重启

服务器重启,或docker系统服务重启,容器默认是退出状态

docker run -d --name r3 \
--restart=always \
redis

docker ps

# 重启docker系统服务
systemctl restart docker

docker ps 

–rm 容器关闭时,会被系统自动删除

启动临时容器

  • 查看容器中的一些默认设置
  • 从容器复制文件到宿主机
# redis容器启动后,容器内有哪些环境变量
docker run --rm redis env

docker cp 在容器和宿主机之间互相复制文件

# 从容器复制文件到宿主机
docker cp r3:/data/dump.rdb ~/

ls

# 从宿主机复制文件到容器
docker cp ~/ip-static r3:/data/ip

# 进入容器查看文件
docker exec -it r3 ls /data/

数据挂载:文件、文件夹、数据卷

# 启动mariadb数据库,挂载宿主机的一个文件夹存放数据文件
# -v挂载会自动创建宿主机目录
docker run -d --name mysql \
-v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mariadb



# 挂载文件
docker run -d --name r4 \
-v /root/redis.conf:/my.conf \
redis \
redis-server /my.conf


docker rm r1 r2 r3
docker rm -f r1 r2 r3

# 清理所有停止的容器
docker container prune
docker container prune -f

# 删除所有容器
# docker ps -aq 列出所有容器的id
docker rm -f $(docker ps -aq)


# 挂载文件夹
# 组主机的文件夹会自动创建
docker run -d --name r1 \
-v /opt/my-app/:/opt/app \
redis

# 访问容器内的路径,创建文件,实际是创建到宿主机挂载的目录下
docker exec -it r1 touch /opt/app/a.txt

# 查看宿主机文件
ls /opt/my-app/

数据卷挂载

#  清理容器
docker rm -f $(docker ps -aq)

# 新建数据卷
docker volume create my-vol
# 查看数据卷列表
docker volume ls
# 查看数据卷详情
docker inspect my-vol

# 启动数据库容器,挂载my-vol数据卷
docker run -d --name mysql \
-v my-vol:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
mariadb

# 查看容器的挂载详情
docker inspect mysql



# 启动新的容器,my-vol挂载到容器
docker run -d --name r1 \
-v my-vol:/opt/app/ \
redis

docker exec -it r1 touch /opt/app/a.txt

# ls 数据卷的真实路径
ls /var/lib/docker/volumes/my-vol/_data
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Docker 是一款开源的容器化平台,可以轻松地创建、部署和管理应用程序的容器。下面是 Docker 常用命令手册的概述: 1. docker version:显示 Docker 版本信息。 2. docker info:显示 Docker 系统信息,包括容器、镜像和存储驱动等。 3. docker images:列出本地所有镜像。 4. docker pull [IMAGE_NAME[:TAG]]:从 Docker 仓库拉取镜像,默认为最新版本。 5. docker search [KEYWORD]:在 Docker 仓库中搜索关键字相关的镜像。 6. docker run [OPTIONS] [IMAGE_NAME[:TAG]] [COMMAND]:创建并运行一个新容器。 7. docker start [CONTAINER_NAME/CONTAINER_ID]:启动一个已存在的容器。 8. docker stop [CONTAINER_NAME/CONTAINER_ID]:停止一个正在运行的容器。 9. docker restart [CONTAINER_NAME/CONTAINER_ID]:重启一个容器。 10. docker rm [CONTAINER_NAME/CONTAINER_ID]:删除一个已停止的容器。 11. docker rmi [IMAGE_NAME/IMAGE_ID]:删除一个本地镜像。 12. docker ps [OPTIONS]:列出正在运行的容器。 13. docker logs [CONTAINER_NAME/CONTAINER_ID]:查看一个容器的日志。 14. docker exec [OPTIONS] [CONTAINER_NAME/CONTAINER_ID] [COMMAND]:在运行中的容器中执行命令。 15. docker commit [CONTAINER_NAME/CONTAINER_ID] [REPOSITORY[:TAG]]:将容器变为一个新的镜像。 这些是 Docker常用的基本命令。还有许多其他命令可以用来管理、监控和调试 Docker 容器和镜像。根据实际需求,可以进一步了解和使用这些命令来提高工作效率和便捷性。 ### 回答2: Docker是一种轻量级的容器化技术,可以快速构建、部署和管理应用程序。下面是一些常用Docker命令: 1. docker run:运行一个容器。可以指定镜像名称、端口映射、卷挂载等参数来创建一个容器的实例。例如:docker run -p 8080:80 nginx。 2. docker ps:列出当前正在运行的容器。可以使用docker ps -a命令来查看所有的容器,包括已停止的。 3. docker images:列出本地的镜像。可以使用docker images -a命令来查看所有的镜像,包括中间层。 4. docker pull:从远程仓库中拉取一个镜像到本地。例如:docker pull ubuntu。 5. docker stop:停止一个正在运行的容器。可以使用容器ID或者容器名称来指定停止的容器。 6. docker rm:删除一个已经停止的容器。可以使用容器ID或者容器名称来指定要删除的容器。 7. docker rmi:删除一个本地的镜像。可以使用镜像ID或者镜像名称来指定要删除的镜像。 8. docker exec:在一个正在运行的容器中执行命令。例如:docker exec -it <容器ID> /bin/bash。 9. docker build:利用Dockerfile来构建一个镜像。例如:docker build -t myimage:1.0 . 10. docker push:将一个本地的镜像推送到远程仓库。例如:docker push myimage:1.0。 这只是一些常用Docker命令,还有很多其他有用的命令和参数可以用来创建、管理和监控容器。熟练掌握这些命令可以更好地使用Docker进行应用程序的开发和部署。 ### 回答3: Docker是一个开源的容器化平台,可以将应用程序和其依赖项打包成一个轻量级、可移植的容器,方便在不同的环境中进行部署和运行。以下是Docker常用命令的简要手册: 1. docker run:创建并启动一个新的容器。可以指定容器的名称、镜像和其他选项,如端口映射、数据卷等。 2. docker stop:停止一个运行中的容器。可以指定容器名称或容器ID来停止指定的容器。 3. docker rm:删除一个已经停止的容器。可以指定容器名称或容器ID来删除指定的容器。 4. docker ps:列出当前运行中的容器。使用选项 -a 可以列出所有的容器,包括已停止的。 5. docker images:列出本地的镜像。使用选项 -a 可以列出全部的镜像,包括中间层镜像。 6. docker pull:从Docker仓库中下载一个镜像。 7. docker push:将一个本地的镜像推送到Docker仓库。 8. docker build:使用Dockerfile构建一个镜像。 9. docker exec:在运行中的容器中执行命令。 10. docker logs:查看容器的日志输出。 11. docker network:管理Docker的网络资源。 12. docker volume:管理Docker的数据卷。 13. docker-compose:通过一个YAML文件定义和管理多个容器的组合(服务)。 这只是Docker常用命令的简要手册,Docker拥有更多的功能和命令,可以根据具体需求进行深入学习和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香扑扑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值