-
<h5>什么是Image(镜像)</h5><ul class=" list-paddingleft-2"><li><p>文件和meta data的集合(root filesystem)</p></li><li><p>分层的,并且每一层都可以添加改变删除文件,成为一个新的image</p></li><li><p>不同的image可以共享相同的layer</p></li><li><p>Image本身是read-only的</p></li></ul>查看全部
-
1.docker images 查看本地所有image(images其实就是一个文件系统)
2.docker run -p 8080:80 -d daocloud.io/nginx 执行docker容器
-p是做端口映射的,把nginx的80端口映射到本地的8080端口
-d是允许这个程序直接返回,把这个容器作为守护进程来执行
3.docker cp index.html containerId://user/share/nginx/html
拷贝一个文件到docker容器
4.docker ps 查看当前正在运行的docker容器
5.docker stop containerId 停止docker容器命令
6.docker commit -m 'fun' containerId 新容器名字 结果会产生一个新的image
7.docker rmi imageId 删除没用的image
8.docker ps -a 列出所有容器
9.docker rm containerId 删除容器
查看全部 -
docker linux安装命令:
命令1:sudo wget -qO- https://get.docker.com | sh
wget是命令行下载工具,下载后面网址
-q是不让wget输出不太多,大写O-是直接输出到标准输出而不是输出到文件
后面是管道,直接把下载下来的sh脚本进行sh执行,该脚本会检查本地linux版本,下载合适的安装包
命令2:sudo usermod -aG docker user2(其他用户名)
就是把user加到 docker组里,就不需要进入root用户去启动docker了
命令3:docker info
查看全部 -
运行一个docker容器实例
简单使用:docker run 镜像名称
带参数使用:docker run -p 容器对外暴露的端口:容器内部端口 -d(后台运行) 镜像名称
查看全部 -
修改docker镜像后制成一个新的镜像文件
docker commit -m '修改备注' docker容器ID
查看全部 -
停止docker某个镜像
docker stop 容器ID
查看全部 -
将外部文件拷贝到docker竞相内
docker cp 宿主机文件 容器ID+容器内文件路径
查看全部 -
docker-compose命令
查看全部 -
docker-compose命令
查看全部 -
容器和宿主机目录挂载的三种方式:
1.第一种方式:
1234567 # 运行容器内部地址nginx用来访问网页的地址/usr/share/nginx/html
docker run -d --name nginx -
v
/usr/share/nginx/html
nginx
#给出容器的所有信息
docker inspect nginx
> Mounts.Source 宿主机目录 [如果是mac,则该路径不是mac上的实际路径,因为mac上运行docker是还有一层虚拟层,这是docker虚拟层中的路径,可以在docker中访问到]
> Mounts.Destination:
/usr/share/nginx/html/
容器目录
screen
~
/Library/Containers/com
.docker.docker
/Data/com
.docker.driver.amd64-linux
/tty
[这个路径才是mac本身挂载的目录]
2.第二种方式:
12 #将当前目录下的html子目录挂载到容器中中的/var/www/html
docker run -p 80:80 -d -
v
$PWD
/html
:
/var/www/html
nginx
3.第三种方式:
123456 # 宿主机目录:$PWD/data docker目录:/var/mydata 容器名:data_container 基础镜像:ubuntu
docker create -
v
$PWD
/data
:
/var/mydata
--name data_container ubuntu
# -it表示使用交互的方式进入容器[默认ubuntu基础镜像没有服务]
docker run -it --volumes-from data_container ubuntu
/bin/bash
#进入后执行mount,可以看到有/var/mydata目录的挂载信息
mount
查看全部 -
Dockerfile中的每一行都产生一个新层
镜像分层的原理及其好处:
分层的好处:假如有很多 container 或者 很多的 Image的话,这些层可以共享。那么存储压力会小很多。运行起来方便。
每个一个命令都是一层,只有容器层是RW,镜像中的各层都是RO
查看全部 -
FROM ubuntu MAINTAINER me@hazyzh.com 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
查看全部 -
FROM ubuntu MAINTAINER me@hazyzh.com 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 创建镜像
12345 FROM alpine:latest #使用的基础镜像
MAINTAINER xbf #谁写的
********
docker build -t hello_docker .
(-t:给个标签,名字叫hello_docker;
'.'
:路径名,把路径下所有内容送给docker engine).
查看全部 -
docker run ubuntu echo hello docker :运行一个ubuntu镜像,并且在其中输出一个hello docker
docker images : 查看容器中有的对象
docker run -p 8080:80 -d daocloud.io/nigix : -p 端口映射 -d 直接输出内容
通过 docker ps 查看docker中启动的进程
尝试在nigix中输出一些信息(随便一个网页假设是index.html),执行如下命令:
docker cp index.html xxxx://usr/share/nigix/html
解释:将index.html移动到xxxx(容器的进程id)://(容器里面的路径)
停止容器: docker stop xxxx(容器id)
重新执行第三步,会发现之前移动进去的index.html已经没有,这是每次对容易的修改是增量修改,需要提交才能生效(其实感觉有点类似于git的分支),因此需要执行 :
docker commit -m "修改说明" xxxx(容器的进程id) 容器的新名字
这个时候在执行docker images 就可以看到刚才提交的生成了一个新容器。
删除掉提交的进程 docker rmi xxx(进程id)
docker ps -a :查看之前运行过的容器
docker rm xx(容器id) xx xx xx 可通过空格隔开,可以清除容器
查看全部
举报