docker使用
dockerfile构建镜像
创建Dockerfile文件 以下为简单用法
//只是单纯的复制可以用COPY或者ADD都可 ADD可解压文件
ADD 文件名 路径
RUN 是在build的时候执行的
CMD 只会运行最后一条命令 若启动容器的时候 加上命令则不生效
ENTRYPOINT 命令不会被覆盖
VOLUME 挂载数据卷不会因为重启而丢失 格式:VOLUME ["/var/log"]
ENV key=value 环境变量
通过dockerfile构建镜像
docker build -t 镜像名 . //在Dockerfile文件所在目录下运行
操作镜像及容器
启动镜像
docker run -itd --name 别名(不写即为随机生成) -p 宿主机端口:容器端口 镜像名称:镜像版本`
进入启动的容器
docker exec -it 容器id /bin/bash 或者docker attach 容器id
退出ctrl Q P
查看全部镜像
docker images
查看启动的镜像
docker ps -a 为查看全部镜像
删除容器
docker rm -f 容器id
删除镜像
docker rmi 镜像名
查看镜像具体的属性
docker inspect -f="{{.开头的属性名称}}" 容器id或镜像名
提交容器到仓库
docker commit -m "提交信息" -a "作者名称" 容器id 容器:tag
docker tag 容器:tag 用户名/仓库名:仓库tag
docker push 用户名/仓库名:仓库tag
拉取镜像
docker pull 镜像名
打包镜像
docker save -o test.tar test:latest
加载镜像
docker load -i test.tar
镜像版本号不正确 修改
docker tag imageId test:latest
删除所有未运行的容器
docker container prune
实时查看容器日志
docker logs -f -n 行数 容器名
nodejs Dockerfile
FROM centos
ADD node-v14.17.3-linux-x64.tar.gz /
RUN mkdir -p /data/node/ && mv node-v14.17.3-linux-x64/* /data/node/ && ln -s /data/node/bin/node /usr/bin/ && ln -s /data/node/bin/npm /usr/bin/
RUN rm -rf node-v14.17.3-linux-x64/
RUN npm config set registry https://registry.npm.taobao.org && npm i pm2 -g && ln -s /data/node/bin/pm2 /usr/bin
redis mysql nginx tdengine 创建容器及运行
docker run --restart=always --name redis -p 6379:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data/:/etc/redis/data/ -d redis redis-server /etc/redis/redis.conf --requirepass root redis:latest
docker run --restart=always -d --name mysql -p 3307:3306 -v /data/mysql8/conf:/etc/mysql/conf -v /data/mysql8/data:/etc/mysql/data -e MYSQL_ROOT_PASSWORD=root mysql:latest
docker run --restart=always --name nginx -p 80:80 -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/log/:/var/log/nginx -v /data/nginx/data/html:/usr/share/nginx/html -d nginx:latest
docker run -d --restart=always --name tdengine -v /data/taos/log:/var/log/taos -v /data/taos/data:/var/lib/taos -v /data/taos/taos.cfg:/etc/taos/taos.cfg -v /data/taos/libtaos.so:/usr/lib/libtaos.so -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
docker compose plugin使用
docker compose是安装docker会额外装的插件 docker-compose是自己单独装的 执行创建停止命令需在yaml所在目录
//根据yaml配置生成容器 -f 可指定yaml文件
docker compose -f docker-compose.yaml up -d
//停止并删除当前yaml文件生成的容器
docker compose down
//查看docker的网络 可在yaml中创建 也可自己创建 yaml创建会随着down掉而删除 自己创建需手动删除 yaml生成时需先注意网段不可与当前network中冲突,不然会报错
docker network ls