DOCKER学习
1.DOCKER架构
2.什么是DOCKER
Docker是一个开源的软件项目,是一个轻量级的虚拟化,可以让技术人员打包他们的应用及依赖包到一个可移植的容器中,可以发布到任何一个Linux机器上。
Docker client:Docker客户端,用于执行Docker相关的命令;
Docker Daemon:Docker守护进程,运行在服务器或者其他工作站;
Docker image:Docker镜像,相当于一个模版,用来启动容器;
Docker Container:由镜像启动,容器内运行这相关的应用程序。
3.Docker基本命令
docker info 查看基本信息;
docker version 查看版本信息;
docker search images 搜索镜像;
docker pull images 下载镜像;
docker images 查看镜像;
docker tag postgres:latest postgres:0813 修改镜像tag
docker run -d postgres 启动容器
docker run -d -p 10080:80 nginx 容器端口映射
docker logs -f 0a9d339fc091 查看容器日志
docker cp test.txt b3014d45a10e:/tmp 将宿主机的文件拷贝到容器内部
4.数据持久化
[root@localhost ~]# docker run -dit -v /opt/ng-volume/:/usr/share/nginx/html -p 10086:80 nginx [root@localhost ~]# docker exec -it b3014d45a10e /bin/bash root@b3014d45a10e:/usr/share/nginx/html# echo "2222">index.html [root@localhost ~]# cd /opt/ng-volume/ [root@localhost ng-volume]# ls index.html
5.Dockerfile的编写
REOM : 继承基础镜像
RUN : 运行shell命令
EXPOSE : 暴露端口号
ADD : 复制文件到镜像,一般拷贝文件,压缩包自动解压
COPY :一般是目录
WORKDIR :指定工作目录
ENV :设定环境变量
ARG : 动态传入参数
CMD:启动容器默认执行的命令
ENTRYPOINT:启动容器真正执行的命令,和CMD只能有一个;
VOLUME:创建挂载点;
ENV:创建环境变量;
ADD:复制文件到docker,压缩表会自动解压
COPY:拷贝文件到docker
vi dockerfile FROM centos:7 RUN useradd he RUN mkdir /hello
COPY 133.tar.gz /tmp
docker build -t centos:user .
Sending build context to Docker daemon 2.56kB
Step 1/3 : FROM centos:7
---> eeb6ee3f44bd
Step 2/3 : RUN useradd he
---> Running in d8c27b07f4b9
Removing intermediate container d8c27b07f4b9
---> 71a5042329a5
Step 3/3 : RUN mkdir /hello
---> Running in 969789e53d8d
Removing intermediate container 969789e53d8d
在编写一个dockerfile
FROM: centos:8 LABEL maintainer="test dockerfile" LABEL test=dockerfile RUN useradd dock RUN mkdir /root/docker
使用ARG传参数
FROM centos:7 RUN mkdir /hello COPY 133.tar.gz /tmp ARG USERNAME RUN useradd $USERNAME -u 1001
在创建镜像的时候传入参数:
[root@localhost dockerf1]# docker build --build-arg USERNAME="testarg" -t centos:arg .