docker部署和基础命令(基于ubuntu22.04)
查看linxu系统:
lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy
1、安装docker:
1.1更新软件包:
sudo apt update #从包管理器(APT)下载最新的包列表,获取是否有任何新的或更新的包可供安装或升级。
sudo apt upgrade #下载并安装所有有可用更新的包,不会删除任何包或添加任何新的包。
1.2安装docker依赖
apt-get install ca-certificates curl gnupg lsb-release
1.3添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
1.4添加docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
1.5安装docker
apt-get install docker-ce docker-ce-cli containerd.io -y
1.6启动docker,配置开机自启:
systemctl start docker
systemctl enable docker
2、镜像命令
2.1查看本地的镜像
docker images
2.2 搜索镜像
docker search 镜像名称
eg:docker search mysql:5.7
2.3下载镜像
docker pull 镜像名称
2.4删除镜像
docker rmi -f 镜像名称/镜像ID
2.5查看镜像层
docker image inspect 镜像名称
3、容器命令
3.1新建容器并启动
docker run [可选参数] 镜像名称
--name "name" 配置容器名称
-d 后台运行
-it 交互模式运行
-p 宿主机端口:容器端口 指定容器的端口
3.2停止/启动/杀掉/重启容器
docker stop/start/kill/restart 容器ID
eg:docker run -d -it --name nginx01 -p 3304:80 nginx
3.3查看运行的容器
docker ps
-a 查看所有容器(包括没运行的容器)
3.4强制删除容器
docker rm -f 容器ID
3.5查看日志
docker logs 容器ID
3.6查看进程信息
docker top 容器ID
3.7查看元数据
docker inspect 容器ID
3.8进入运行中的容器
第一种,开启新终端,可操作:
docker exec -it 容器ID /bin/bash
第二种,进入正在执行的终端:
docker attach -it 容器ID /bin/bash
3.9容器和宿主机文件传递
docker cp 文件名 容器ID:容器内部路径
eg:docker cp default-ssl.conf 60a6:/etc/apache2/sites-available/
4、数据持久化
创建数据卷:-v 数据卷名称:容器目录
4.1方式1:容器数据卷,如果数据卷不存在会自动创建
docker volume create 数据卷名称
4.2查看数据卷
docker volume ls
eg:docker run -d -it -p 3306:3306 -v myvolume:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql5.7
方式2:挂载
-v 宿主机目录:容器目录
5、制作镜像
5.1提交镜像,将容器创建为一个新的镜像
docker commit -a:"作者" -m "描述信息" 容器ID 目标镜像:tag
eg:docker commit -a:"liang" -m "add nginx" f751364950f4 mycentos:1.0
5.2制作镜像
第一步,创建一个dockerfile文件,并编写dockerfile文件
相关命令
FROM:指定新镜像的基础镜像
USER:为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户
MAINTAINER:新镜像维护者信息
RUN:镜像构件时运行的指令
CMD:容器启动时运行的指令,dockerfile只能有一条有效的CMD命令,有多条则执行最后一条。
ENTRYPOINT:容器启动时运行的指令,可执行多条。
EXPOSE:容器运行时对外监听指定端口
ADD:拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压
COPY:拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能
WORKDIR:为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录
VOLUME:| 为容器创建挂载点或声明卷
ENV:构建镜像时配置环境变量
HEALTHCHECH:健康检查
构建一个简单的ubuntu镜像
FROM ubuntu
MAINTAINER liang<haha@qq.com>
ENV MYPATH /opt
WORKDIR $MYPATH
RUN apt-get update
RUN apt-get install net-tools
EXPOSE 80
RUN echo $MYPATH
ENTRYPOINT echo -------end------
CMD /bin/bash
第二步,docker bulid创建一个镜像
eg:docker build -f dockerfile名称 -t 新镜像名称 .
第三部,发布镜像到仓库,docker push
6、docker-compsse:是一个定义和运行容器的小工具。
6.1下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
6.2给与执行权限
sudo chmod +x /usr/bin/docker-compose
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统