docker.md 3.6 KB

Docker入门手册

Docker 镜像常用命令

搜索镜像

docker search java

下载镜像

  • docker pull java:8
  • docker pull macro/eureka-server:0.0.1

    列出镜像

    docker images

    删除镜像

  • docker rmi java

  • docker rmi -f java

  • docker rmi -f $(docker images)

Docker 容器常用命令

新建并启动容器

docker run -d -p 91:80 nginx

列出容器

docker ps

停止容器

docker stop $ContainerId

强制停止容器

docker kill $ContainerId

启动已停止的容器

docker start $ContainerId

进入容器

  • docker inspect --format "{{.State.Pid}}" $ContainerId
  • nsenter --target "$pid" --mount --uts --ipc --net --pid

    删除容器

  • docker rm $ContainerId

  • docker rm -f $(docker ps -a -q)

    查看启动错误日志

    docker logs $ContainerIdName(或者$ContainerId)

    查看容器的IP地址(172.17.0.*)

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' $ContainerId

    同步宿主机时间到容器

    docker cp /etc/localtime $ContainerName:/etc/

    在宿主机查看docker使用cpu、内存、网络、io情况

  • 查看指定容器情况:docker stats $ContainerName

  • 查看所有容器情况:docker stats -a

    进入docker内部的bash

    docker exec -it $ContainerName /bin/bash

Docker Registry

Docker Registry 2.0搭建

docker run -d -p 5000:5000 --restart=always --name registry2 registry:2

推送到私有仓库

docker push localhost:5000/macro/eureka-server:0.0.1

修改镜像标签

docker tag macro/eureka-server:0.0.1 localhost:5000/macro/eureka-server:0.0.1

使用maven构建Docker镜像

构建镜像

  • command:mvn clean package docker:build
  • tip: Linux服务器需要开启远程api:vi /usr/lib/systemd/system/docker.service 修改为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

    推送镜像到私有仓库

  • command:mvn clean package docker:build -DpushImage

  • tip: pom.xml修改192.168.1.71:5000/macro/${project.artifactId}:${project.version}

  • tip: docker要支持http:echo '{ "insecure-registries":["39.98.190.128:5000"] }' > /etc/docker/daemon.json

    修改Docker镜像存放位置

  • 查看Docker的存放位置:docker info | grep "Docker Root Dir"(默认为/var/lib/docker)

  • 关闭Docker服务:systemctl stop docker

  • 移动目录到目标路径:mv /var/lib/docker /root/data/docker

  • 建立软连接:ln -s /root/data/docker /var/lib/docker

Docker compose

安装

  1. 下载地址:https://github.com/docker/compose/releases
  2. 安装地址:/usr/local/bin/docker-compose
  3. 设置为可执行:sudo chmod +x /usr/local/bin/docker-compose
  4. 测试是否安装成功:docker-compose --version

安装命令补全工具

sudo curl -L https://raw.githubusercontent.com/docker/compose/1.22.0/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

常用命令

  • 构建、创建、启动相关容器:docker-compose up
  • 列出所有容器:docker-compose ps
  • 删除指定服务的容器:docker-compose rm eureka
  • 对容器进行动态扩容:docker-compose scale eureka=3
  • 停止相关容器:docker-compose stop eureka
  • 启动相关容器:docker-compose start eureka

编排SpringCloud微服务

所使用到的工程

  • eureka-server
  • hello-service
  • feign-consumer
  • api-gateway

    编排模式

  • 编排SpringCloud微服务:见eureka-server/docker-res/docker-compose.yml

  • 简化SpringCloud微服务编排:见eureka-server/docker-res/docker-compose-simple.yml

  • 编排高可用的注册中心:见eureka-server/docker-res/docker-compose-eureka.yml