Docker基本命令
sudo systemctl enable docker设置docker开机自启sudo systemctl enable docker查看docker是否开机自启- 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 将容器内的指定文件夹挂载到宿主机对应位置
镜像
- 拉取镜像:
docker pull [镜像名称]例如:docker pull ubuntu - 列出镜像:
docker images - 删除镜像:
docker rmi -f [镜像名称]例如:docker rmi -f ubuntu - 构建镜像:
docker build [选项] [Dockerfile路径] 例如:docker build -t myimage:1.0 .
容器
- 运行容器: docker run [选项] [镜像名称] 例如: docker run -it ubuntu /bin/bash
- 列出正在运行的容器:docker ps
- 设置容器自启/不自启
docker update mymongo --restart=always
docker update mymongo --restart=no
- 列出所有的容器:docker ps -a
过滤显示容器 docker ps -a --filter name=my_container
- 进入正在运行的容器: docker exec -it [容器名称或容器ID] /bin/bash 例如:docker exec -it mycontainer /bin/bash
- 退出容器:exit
- 重启容器: docker restart [容器名称或容器ID] 例如: docker restart mycontainer
- 停止容器: docker stop [容器名称或容器ID] 如: docker stop mycontainer
- 删除容器: docker rm -f [容器名称或容器ID]
例如: docker rm -f mycontainer - 查看容器日志: docker logs [容器名称或容器ID]
例如: docker logs mysql1 - 复制文件到容器中:docker cp [本地文件路径] [容器名称或容器ID]:[容器目标路径]
例如: docker cp index.html mycontainer:/var/www/html - 复制容器中的文件到本地中:docker cp [容器名称或容器ID]:[容器目标路径] [本地文件路径]
例如: docker cp mycontainer:/var/www/html/index.html index.html - 将本地文件夹的内容复制到容器中的指定位置 docker cp /path/to/local/folder/. container_name:/app 如果是linux 拷贝本地某文件夹的所有内容到某位置cp -r /path/to/source_directory/* /path/to/destination_directory/
- 容器重命名语法: docker rename 旧容器名 新容器名
- 将容器迁移到另一台服务器,
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
- 查看容器的细节,如
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
- 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