其他分享
首页 > 其他分享> > Docker学习-基本上手操作

Docker学习-基本上手操作

作者:互联网

文章目录

学习目标

Docker 简介

参考链接:阮一峰Docker 入门教程

Docker 是什么

**Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。**它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

Docker 解决的问题

环境配置问题:Docker 带环境安装,安装的时候,把原始环境一模一样地复制过来。不用操作系统和各种库、组件

Docker 的用途

Docker 的主要用途,目前有三大类。

**(1)提供一次性的环境。**比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

**(2)提供弹性的云服务。**因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

**(3)组建微服务架构。**通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

安装Docker

基于 CentOS

镜像(image)操作

**Docker 把应用程序及其依赖,打包在 image 文件里面。**只有通过这个文件,才能生成 Docker 容器。

# 列出本机所有的 image 文件
docker images

查看所有 Docker 镜像

# 从Docker Hub查找镜像
docker search [ImageName]

在这里插入图片描述

# 拉取镜像实列:hello-world
docker pull [ImageName]:[ImageTag]
没有指定 ImageTag,默认是 latest

在这里插入图片描述

# 再次查看本地镜像列表
docker images
本地已经拉取 hello-world 镜像成功

在这里插入图片描述

# 删除镜像
# 删除镜像之前,必须没有容器引用此镜像
docker rmi [image]

容器(container)操作

# 运行镜像 hello-world
docker run hello-world 
出现下图则是运行成功。输出这段提示以后,hello world就会停止运行,容器自动终止。

在这里插入图片描述

# 查看正在运行的容器文件
docker ps 
# 查看所有的容器文件
docker ps -a

在这里插入图片描述

# 删除容器
# 删除的时候,你的容器需要先停止
docker rm [container]

Dockerfile 文件

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

**制作自己的 Docker 容器

tip:容器是否正常运行

# 查看当前正在运行的容器
docker ps 
# 查看运行容器的日志
docker logs [container]

上传镜像

推送镜像,就是一个上传的过程,像ftp一样,把你本地的东西上传到远程服务器

更多用法

修改容器并生成新的镜像

# 进入容器
docker exec -it [container] bash
# 将本地修改好的文件移动到容器中 
docker cp 本机路径 container:容器路径
# 从容器创建一个新的镜像(这里的commit,像是git的commit,哈哈)
docker commit -m '22' [container] [new ImageName]
# 查看新生成的镜像
docker images

较复杂的 Dockerfile

背景:打 Nginx 镜像:nginx.conf 配置文件需要修改

Dockerfile

# 基础镜像
FROM centos
# 编译nginx环境
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib  
# 添加当前目录的 Nginx 包到镜像 /usr/src/ 路径下
ADD nginx-1.17.9.tar.gz /usr/src/
# 添加容器执行脚本 add 添加之后,会自动解压,copy 不会自动解压,只是把文件复制过去而已
ADD run.sh /usr/src/ 

# 编译安装 Nginx 
RUN cd /usr/src/nginx-1.17.9 \
    && mkdir /usr/local/nginx \
    && mkdir -p /data/disk2/cxzx_datafile \
    && ./configure --prefix=/usr/local/nginx && make && make install \
    && ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ \
    && nginx
RUN rm -rf /usr/src/nginx-1.17.9

#本地修改的配置文件,直接放到镜像中
ADD nginx.conf /usr/local/nginx/conf/ 
#赋权,镜像启动需要权限
RUN chmod 777 /usr/src/run.sh 
# 容器对外暴露的端口
EXPOSE 8030 
# 执行脚本
CMD ["/usr/src/run.sh"]

run.sh

#!/bin/bash
#设置 nginx 非 daemon 守护进程
echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
# 指定配置文件启动 nginx 服务
/usr/local/nginx/sbin/nginx -c  /usr/local/nginx/conf/nginx.conf

Docker 命令集合

参考链接

容器生命周期管理run
start/stop/restart
rm
exec
容器操作ps
inspect
logs
export
容器rootfs命令commit
cp
diff
镜像仓库login
pull
push
search
本地镜像管理images
rmi
build
save
load
import
版本信息info
version

总结

本文是自己在工作中实际操作总结的,这是很不完善的,只是刚刚好把基本的操作(差不多满足一般的需求)记录下来。
比如一个Dockerfile中还有很多其他命令:指定镜像的作者啊等等,都没有提及。但是基本上,按照这些可以简单的使用 Docker 了,能够把项目容器化,并且运行。

标签:容器,基本上,学习,nginx,usr,镜像,Docker,docker
来源: https://blog.csdn.net/weixin_41793772/article/details/115425387