docker速成笔记
·
Docker 常用命令汇总
容器管理
docker build构建镜像docker pull拉取镜像docker push推送镜像docker run运行容器- 示例:
docker run --name nginx1 -p 80:80 -d nginx - 参数说明:
--name容器名称,-p端口映射,-d后台运行 - Redis 持久化示例:
docker run --name some-redis -p 6379:6379 -d redis redis-server --appendonly yes
- 示例:
容器生命周期控制
docker pause/unpause暂停/恢复容器docker stop/start/restart停止/启动/重启容器docker ps查看容器状态docker logs查看日志docker exec -it进入容器(交互模式)docker rm删除容器
镜像管理
docker images查看本地镜像docker rmi删除镜像docker save保存镜像为文件- 示例:
docker save -o nginx.tar nginx:latest
- 示例:
docker load从文件加载镜像- 示例:
docker load -i nginx.tar
- 示例:
CentOS 7 安装 Docker
环境要求
- CentOS 7 内核版本 ≥ 3.10
安装步骤
- 卸载旧版本:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine - 安装依赖并配置仓库:
yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - 安装 Docker CE(社区版):
yum install -y docker-ce
防火墙配置
- 关闭防火墙:
systemctl stop firewalld systemctl disable firewalld - 查看状态:
systemctl status firewalld
Docker 服务管理
- 启动/停止/重启 Docker:
systemctl start/stop/restart docker - 配置镜像加速(阿里云示例):
修改/etc/docker/daemon.json:
重载配置:{ "registry-mirrors": ["https://<your-aliyun-mirror>.mirror.aliyuncs.com"] }systemctl daemon-reload systemctl restart docker
数据卷(Volume)操作
常用命令
- 创建数据卷:
docker volume create html - 查看详情:
docker volume inspect html - 删除未使用数据卷:
docker volume prune - 删除指定数据卷:
docker volume rm html
挂载示例
- 挂载目录到容器:
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx - 挂载宿主机文件:
docker run -v /host/path/file.conf:/container/path/file.conf -d image_name
自定义镜像(Dockerfile)
基础指令
FROM指定基础镜像(如FROM ubuntu:16.04)ENV设置环境变量(如ENV JAVA_DIR=/usr/local)COPY复制文件(如COPY ./jdk8.tar.gz $JAVA_DIR/)RUN执行命令(如RUN yum install -y gcc)EXPOSE声明端口(如EXPOSE 8090)ENTRYPOINT启动命令(如ENTRYPOINT java -jar /app.jar)
示例:Java 应用镜像
FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
EXPOSE 8090
ENTRYPOINT ["java", "-jar", "/tmp/app.jar"]
构建命令:
docker build -t javaapp:1.0 .
Docker Compose 部署
示例文件
version: "3.8"
services:
mysql:
image: mysql:5.7.25
environment:
MYSQL_ROOT_PASSWORD: 123
volumes:
- /tmp/mysql/data:/var/lib/mysql
web:
build: .
ports:
- "8090:8090"
常用命令
- 启动服务:
docker-compose up -d - 查看日志:
docker-compose logs - 重启服务:
docker-compose restart service_name
私有镜像仓库
无 UI 版本
docker run -d --restart=always --name registry -p 5000:5000 -v registry-data:/var/lib/registry registry
带 UI 版本(Docker Compose)
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- "8080:80"
environment:
REGISTRY_TITLE: "私有仓库"
REGISTRY_URL: http://registry:5000
配置 Docker 信任仓库
修改 /etc/docker/daemon.json:
{
"insecure-registries": ["http://<your-ip>:5000"]
}
重载配置:
systemctl daemon-reload
systemctl restart docker
```@[TOC](这里写自定义目录标题)
更多推荐
所有评论(0)