-
docker pull 获取image docker build 创建image docker images 列出image docker run 运行container docker ps 列出正在运行的container docker rm 删除container docker rmi 删除image docker cp 在host和container之间拷贝文件 docker commit 保存改动为新的image
查看全部 -
容器和宿主机目录挂载的三种方式:
1.第一种方式:
# 运行容器内部地址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.第二种方式:
#将当前目录下的html子目录挂载到容器中中的/var/www/htm
l
docker run -p 80:80 -d -
v
$PWD
/html
:
/var/www/html
nginx
3.第三种方式:
# 宿主机目录:$PWD/data docker目录:/var/mydata 容器名:data_container 基础镜像:ubuntu
docke
r 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
https://www.imooc.com/notepad/21a442
查看全部 -
VOLUME 持久存储,应用场景比如数据库,可以存储在容器外面的分卷上。
容器跟容器之间的数据共享也可以用。
查看全部 -
sudo 普通用户希望用root权限执行
wget 下载命令
-qO(字母) 限制输出跟普通输出
| sh 用SH的方式执行
--------------------
Linux安装docker,当前用户没有root权限。
sudo wget -qO- https://get.docker.com | sh
添加权限
sudo usermod -aG docker 用户名
查看全部 -
docker&&vm
查看全部 -
docker search whalesay 搜索镜像
docker pull whalesay 下载镜像
docker tag docker/whalesay xsw/whalesay 给镜像换一个名字
docker push xsw/whalesay
上传之前要 docker login 登录
查看全部 -
运行 docker 时 用 -v 参数指定 volume 的路径, 然后再用 inspect 查看 volume 映射到硬盘上的路径, 然后再直接更改硬盘上的文件。
-v 参数也可以指定硬盘路径映射(挂载)到容器的路径。 docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx(很好的用于开发)
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
docker run --volumes-from data_container ubuntu
两个组合可以实现镜像文件共享。
查看全部 -
docker ps -a 表示所有容器
docker pull 获取image
docker build 创建image
docker run 运行container
docker images 列出image
docker ps 列出container
docker rm 删除container
docker rmi 删除images
docker cp host和container之间拷贝文件
docker commit 保存改动为新的image
查看全部 -
FROM ubuntu
MANTAINER XSW
RUN sed -i 's/cn.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 /usr/share/nginx/html
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
EXPOSE 80
Dockerfile 语法
FROM 基础镜像
RUN 在容器中执行命令
ADD 添加文件,相比COPY可以将远程的文件复制进容器
COPY 拷贝文件
CMD 执行命令
EXPOSE 暴露端口
WORKDIR 指定路径
MAINTAINER 维护者
ENV 设置环境变量
ENTRYPOINT 容器入口
USER 指定用户
VOLUME 指定容器挂载的卷
查看全部 -
目录关系:
ghost - ghost - Dockfile - nginx - nginx.conf - Dockfile - data - docker-compose.yml
ghost/ghost/Dockfile
ghost/ghost/config.js
ghost/nginx/Dockfile
ghost/nginx/nginx.conf
ghost/docker-compose.yml
此处数据库相关的配置要和config.js中的配置保持一致。【注:db.volumes的值应该为:$PWD/data:/var/lib/mysql】
ghost目录:
#将所有容器启动,并以daemon的方式后台运行 docke-compose up -d
启动容器后浏览器访问localhost
显示502 Bad Gateway错误
表示nginx已经启动,但是nginx和ghost-app之间的链接是不对的。
检查:
1.docker-compose.yml
2.nginx.conf
1.将已经启动的容器停掉 docker-compose stop 2.将已经停掉的容器删除掉 docker-compose rm 3.修改了nginx.conf之后需要重新构建镜像[第一次没有镜像,执行的时候回直接创建镜像,现在已经镜像了,所以需要重新构建] docker-compose build 4.使用镜像启动容器 docker-compose up -d 5.再次使用浏览器访问就成功了,表示使用docker-compose拉的三个容器已经启动,并且相互协作了 6.访问localhost/ghost/setup/one 进行配置
localhost/ghost/editor/ 写文章并发布,则可以在localhost看到发布的文章。
查看全部 -
.yaml 常见的如docker等软件的配置文件
ghost-app: build:ghost depends_on: - db ports: - "2368:2368" nginx: build:nginx ports: - "80:80" depends_on: - ghost-app db: image: "mysql:5.7.15"
三个顶层对象,表示三个服务,分别是:ghost-app、nginx、db
查看全部 -
docker-compose 安装
1.Mac/Windows:
安装docker的时候附带安装了。
2.Linux:
curl https://github.com/docker/compose
查看全部 -
#chroot对应用程序做了文件系统的分离
#VM有一层Hypervisro虚拟层,虚拟出硬件
#Docker没有Hypervisro虚拟层,会轻量很多
查看全部 -
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目录,一个数据的容器可以被多个其他容器挂在,这样可以实现数据的共享
查看全部 -
Dockerfile创建镜像
#mkdir d1
#cd d1
#touch Dockerfile
FROM alpine:latest
MAINTAINER smilevt
CMD echo "Hello Docker!"
#docker build -t hello_docker .
查看全部
举报