Docker常用命令3分钟搞定

393 阅读3分钟

Docker基本命令

  1. sudo systemctl enable docker 设置docker开机自启
  2. sudo systemctl enable docker 查看docker是否开机自启
  3. docker run -it -d --name 要取的别名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文件位置 镜像名:Tag /bin/bash
    如:
    docker run -it -d --name nginx1 --network net1 nginx:1.22
  • -it 表示 与容器进行交互式启动
  • -d 表示可后台运行容器 (守护式运行)
  • --name 给要运行的容器 起的名字
  • /bin/bash 交互路径
  • -p 将容器的端口映射到宿主机上,通过宿主机访问内部端口
  • -v 将容器内的指定文件夹挂载到宿主机对应位置

镜像

  1. 拉取镜像: docker pull [镜像名称] 例如: docker pull ubuntu
  2. 列出镜像: docker images
  3. 删除镜像: docker rmi -f [镜像名称] 例如: docker rmi -f ubuntu
  4. 构建镜像:docker build [选项] [Dockerfile路径] 例如: docker build -t myimage:1.0 .

容器

  1. 运行容器: docker run [选项] [镜像名称]  例如: docker run -it ubuntu /bin/bash
  2. 列出正在运行的容器:docker ps
  3. 设置容器自启/不自启
docker update  mymongo  --restart=always
docker update mymongo --restart=no 
  1.  列出所有的容器:docker ps -a  

过滤显示容器 docker ps -a --filter name=my_container

  1. 进入正在运行的容器: docker exec -it [容器名称或容器ID] /bin/bash 例如:docker exec -it mycontainer /bin/bash
  2. 退出容器:exit
  3. 重启容器: docker restart [容器名称或容器ID]  例如: docker restart mycontainer
  4. 停止容器: docker stop [容器名称或容器ID] 如: docker stop mycontainer
  5. 删除容器: docker rm -f [容器名称或容器ID]
    例如: docker rm -f mycontainer
  6. 查看容器日志: docker logs [容器名称或容器ID]
    例如: docker logs mysql1
  7. 复制文件到容器中:docker cp [本地文件路径] [容器名称或容器ID]:[容器目标路径]
    例如: docker cp index.html mycontainer:/var/www/html
  8. 复制容器中的文件到本地中:docker cp [容器名称或容器ID]:[容器目标路径] [本地文件路径]
    例如: docker cp mycontainer:/var/www/html/index.html index.html
  9. 将本地文件夹的内容复制到容器中的指定位置 docker cp /path/to/local/folder/. container_name:/app 如果是linux 拷贝本地某文件夹的所有内容到某位置cp -r /path/to/source_directory/* /path/to/destination_directory/
  10. 容器重命名语法: docker rename 旧容器名 新容器名
  11. 将容器迁移到另一台服务器,

docker容器的导入和导出_docker 导出容器_周几吉的博客-CSDN博客

方式1:

1)docker export -o redis.tar.gz redis 或 docker export redis > redis1.tar.gz

2)docker import redis.tar.gz redis:v1

方式2:

1)首先使用docker commit命令将其保存为Docker镜像。

docker commit container-id image-name

2)docker save压缩镜像并将其迁移到新的服务器

docker save image-name > image-name.tar

3)新的服务器中,使用docker load将压缩镜像文件用于创建新镜像

cat image-name.tar | docker load
    # 或者
docker load -i image-name.tar

4)根据自己的实际需求,确定是否需要进行端口映射、权限管理等操作

docker run -it --name container-name -p 8080:8080 image-name /bin/bash
  1. 查看容器的细节,如
docker inspect minio1

Docker 在容器中运行springboot的jar包,挂载外部yml配置文件 - 韦邦杠 - 博客园

Dockerfile与微服务

1.编写dockerfile

FROM justrydeng/jdk8
#EXPOSE 8900
ADD field-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/data/java/config/application.yml"]

FROM java:8:使用jdk8作为基础镜像
EXPOSE 8900:暴露容器的8900端口
ADD springboot.jar app.jar:将复制指定的java.jar为容器中的app.jar,相当于拷贝到容器中取了个别名
RUN bash -c ‘touch /app.jar’: 创建一个新的容器并在新的容器中运行命令
ENTRYPOINT[]:相当于在容器中用cmd命令执行jar包

2.构建镜像 docker build -t test:1.0 .

3.运行容器

docker run -d \
--name test1\
-p 8086:8083 \
-v /home/mcq/jarDir/ZW:/data/java/config \
field :1.0
  1. docker run --restart=always -it -d --name u0 -p 1200-1250:1200-1250 -v /home/dxl/mcq/docker/u0/home:/home ubuntu:20.04 /bin/bash

docker-compose -f mysql-docker-compose.yaml up -d

Docker - 快速通关 (3h) (yuque.com)