$ sudo usermod -aG docker your_user
docker 命令 可以参考 忽略名词
#docker ps 查看docker进程
#docker run -p 8080:80 -d nginx 启动nginx服务
#docker stop 容器ID 停止服务
#docker cp index.html 177sdafdikdffdd://usr/share/nginx/html
#docker commit -m ‘fun’ 容器ID nginx-fun 保存改动生成一个新的镜像
#docker images 查看已有镜像
#docker rmi 镜像id
rm 删除容器
rmi 删除镜像
cp 从host和容器见拷贝文件 commit 保存改动的镜像 (每一个镜像产生的文件都是临时,必须得保存才能在下次启动时才生效)
docker ps 查看当前运行容器
docker ps -a 查看所有容器
#docker rm 镜像ID 删除镜像
#docker pull 获取镜像
#docker build 创建镜像
Docker daemon:负责各种docker的操作,比如下载docker镜像、运行容器,客户端通过命令与Docker daemon交互。
Registry:互联网的服务,daemon可以和Registry交互,比如拖取image,是所有docker用户共享docker镜像的服务。
可以这样理解 docker把镜像拉取后通过run 把镜像运行成容器 我们相当于客户端client,键入docker命令。守护进程daemon接收到客户端的命令并进行处理。比如一个pull镜像的命令,daemon会去registry官方镜像仓库拉取下来一个镜像image。 DOCKER_HOST就是我们处于的那个虚拟机。
mac 下
Dockerfile创建镜像
#touch Dockerfile
vim Dockfile
FROM alpine:latest
MAINTAINER smilevt
CMD echo “Hello Docker!”
docker build -t hello_docker .
(-t:给个标签,名字叫hello_docker; ‘.’:路径名,把路径下所有内容送给docker engine).
$ docker images hello_docker
$ docker run hello_docker
创建一个ubuntu的镜像
FROM ubuntu
MAINTAINER xbf
RUN sed -i ‘s/archive.ubuntu.com/mirrors.ustc.edu.cn/g’ /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT [“/usr/sbin/nginx”, “-g”, “daemon off;”]
EXPOSE 80
总结:
Dockerfile Command FROM RUN ADD COPY CMD EXPOSE WORKDIR MAINTAINER ENV ENTRYPOINT USER VOLUME
镜像分层被存储,dockerfile中每一行都产生一个新层 每个一个命令都是一层,只有容器层是RW,镜像中的各层都是RO
volume 在容器外存储数据,且可被其他容器进行访问 volume可以提供容器与容器之间的共享数据 docker的一种存储技术。volume提供独立与容器之外的持久化存储
Volume
#docker run -d -name nginx-v /user/share/nginx/html nginx 通过-v挂在一个卷
#docker inspect nginx 检查当前容器
关心Mounts,把本地的一个路径映射到容器中
#echo “it’s 2018” > index.html
#docker exec it nginx /bin/bash 进入容器中去看一下
#cd /usr/share/nginx/html/
#docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/hmtl nginx $PWD是指当前路径的意思
修改当前路径下的index.html,然后访问容器的80端口
关键一下容器
#mkdir data
#docker create -v $PWD/data:/var/mydata --name data_container ubuntu 如果没有ubuntu镜像会自动下载
#docker run -it --volumes-form data_container ubuntu /bin/bach
#mount
#cd /var/mydata
#touch whaterver.txt
退出容器,查看本地的data目录,一个数据的容器可以被多个其他容器挂在,这样可以实现数据的共享
- ¥docker run -v(挂载一个卷) /usr/share/nginx/html nginx
docker inspect nginx 容器内所有信息,包括检查文件映射关系
docker exec -it nginx(容器名字) /bin/bash (进到容器里面去看)
cd /usr/share/nginx/html
2. $ docker run -v $PWD/code:var/www/html nginx
curl ttp://localhost(获取本地服务器上的网页)
3. $ docker run - volumes-from …
mkdir vol3 创建新的目录
mkdir data
docker create -v $PWD(当前目录)/data/data/var/mydata --name data_container(容器名字) ubuntu(基础镜像)
docker tun -it(交互的方式) --volumes-from data_container ubuntu /bin/bash
mount
touch whatever.txt (创建一个文件)
存有数据的容器可以被多个容器挂载,数据可以共享。
运行镜像之存储 可以做到本地文件与容器服务器的协作 1. 使用 -v 参数 提供存储 存储格式: 机器源存储位置:容器目标位置 2. 使用–volumes-from 使用其他容器创建的存储 docker run --volumes-from exists_container_name image_name(nginx) 注:创建一个容器并提供挂载点(存储点) docker create -v $PWD:/var/data --name container_name image_name(ubuntu)
Docker 持久化存储Volume之二: 本地目录挂载到容器内的数据卷 docker run -v P W D / c o d e : / v a r / w w w / h t m l n g i n x p s : 1. PWD/code:/var/www/html nginx ps:1. PWD/code:/var/www/htmlnginxps:1.PWD-shell 命令中本地当前目录的环境变量 2.nginx的配置文件/etc/nginx/conf.d/default.conf中默认的根路径root是/usr/share/nginx/html,所以此处配置容器中的目标路径是/var/www/html并不能在浏览器中打开本地的index.html,需要更改绑定路径或nginx根路径
Registry镜像仓库
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
628441605)]
[外链图片转存中…(img-w889WcVY-1715628441605)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!