一、docker相关命令
1、docker进程相关命令
启动docker服务:systemctl start docker
停止docker服务:systemctl stop docker
重启docker服务:systemctl restart docker
查看docker服务状态:systemctl status docker
设置开机启动docker服务:systemctl enable docker
2、docker镜像相关命令
查看本地所有的镜像:docker images
查看本地所有的镜像的id:docker images –q
从网络中查找需要的镜像:docker search 镜像名称
拉取镜像:docker pull 镜像名称 (镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本,镜像版本可以去docker hub 搜索对应镜像查看)
删除本地镜像:docker rmi 镜像id (删除指定本地镜像)
docker rmi `docker images -q` (删除所有本地镜像)
3、docker容器相关命令
查看容器:docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器(包含退出的)
创建并启动容器:docker run 参数
参数说明:
进入容器:docker exec 参数 (退出容器后,不会关闭容器)
停止容器:docker stop 容器名称
启动容器:docker start 容器名称
删除容器:docker rm 容器名称(如果容器是运行状态则删除失败,需要停止容器才能删除)
查看容器信息:docker inspect 容器名称
二、数据卷
什么是数据卷?
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以被挂载多个数据卷
数据卷作用:
- 容器数据持久化
- 外部机器和容器间接通信
- 容器之间数据交换
配置数据卷:
创建启动容器时,使用 –v 参数 设置数据卷:
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
注意事项:
1. 目录必须是绝对路径
2. 如果目录不存在,会自动创建
3. 可以挂载多个数据卷
配置数据卷容器:
创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )
例如:将c1和c2容器挂载到c3容器上
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
三、docker镜像原理
四、定义dockerfile,发布springboot项目
1、定义父镜像:FROM java:8
2、定义作者信息:MAINTAINER itheima <itheima@itcast.cn>
3、将jar包添加到容器: ADD springboot.jar app.jar
4、定义容器启动执行的命令:CMD java–jar app.jar
5、通过dockerfile构建镜像:docker bulid –f dockerfile文件路径 –t 镜像名称:版本
五、使用docker compose编排nginx+springboot项目
1、创建docker-compose目录
mkdir ~/docker-compose
cd ~/docker-compose
2、编写 docker-compose.yml 文件
version: '3'
services:
nginx:
image: nginx
ports:
- 80:80
links:
- app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
- "8080"
3、创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
4、在./nginx/conf.d目录下 编写nginx.conf文件
server {
listen 80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
5、在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up
六、docker私有仓库
1、私有仓库搭建
# 1、拉取私有仓库镜像
docker pull registry
# 2、启动私有仓库容器
docker run -id --name=registry -p 5000:5000 registry
# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功
# 4、修改daemon.json
vim /etc/docker/daemon.json
# 在上述文件中添加一个key,保存退出。此步用于让 docker 信任私有仓库地址;注意将私有仓库服务器ip修改为自己私有仓库服务器真实ip
{"insecure-registries":["私有仓库服务器ip:5000"]}
# 5、重启docker 服务
systemctl restart docker
docker start registry
2、将镜像上传至私有仓库
# 1、标记镜像为私有仓库的镜像
docker tag centos:7 私有仓库服务器IP:5000/centos:7
# 2、上传标记的镜像
docker push 私有仓库服务器IP:5000/centos:7
3、从私有仓库拉取镜像
#拉取镜像
docker pull 私有仓库服务器ip:5000/centos:7