随笔 - 8  文章 - 0  评论 - 0  阅读 - 1199

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
posted on   island-lark  阅读(445)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示