mall/document/reference/docker.md
2018-12-11 13:57:48 +08:00

87 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 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镜像
### 构建镜像
- commandmvn 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
### 推送镜像到私有仓库
- commandmvn clean package docker:build -DpushImage
- tip
pom.xml修改<imageName>192.168.1.71:5000/macro/${project.artifactId}:${project.version}</imageName>
- tip
docker要支持http:echo '{ "insecure-registries":["192.168.1.71:5000"] }' > /etc/docker/daemon.json
### 修改Docker镜像存放位置
1. 查看Docker的存放位置docker info | grep "Docker Root Dir"(默认为/var/lib/docker
2. 关闭Docker服务systemctl stop docker
3. 移动目录到目标路径mv /var/lib/docker /root/data/docker
4. 建立软连接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
#### 编排模式
1. 编排SpringCloud微服务见eureka-server/docker-res/docker-compose.yml
2. 简化SpringCloud微服务编排见eureka-server/docker-res/docker-compose-simple.yml
3. 编排高可用的注册中心见eureka-server/docker-res/docker-compose-eureka.yml