Docker架构与简单实战
架构Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。图片来源:慕课网docker学习课程。 内容也基本学习自慕课和菜鸟教程Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管...
·
架构
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
图片来源:慕课网docker学习课程。 内容也基本学习自慕课和菜鸟教程
- Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
- Docker 容器通过 Docker 镜像来创建。
- 容器与镜像的关系类似于面向对象编程中的对象与类。容器是动态的运行实例。
本地主机安装了docker, docker引擎服务器端会以守护进程运行。我们可以通过客户端命令操作docker。对应镜像会先在本地检索,没有会去网络中心仓库检索下载,然后运行即为容器。这样对于打包应用和运行很方便。
Linux可以直接下载重定向到shell安装
sudo wget -qO- https://get.docker.com/ | sh
apt也自带了docker源,但是版本比较老就是
sudo apt instll docker.io
然后可以如下给用户授予docker使用的超级权限
sudo usermod -aG docker your-user
实战
- 信息、版本
docker info # 查看docker信息
docker verion # 查看客户端和服务端(引擎)版本
- 查看本地的docker镜像
docker images
3. 删除本地镜像
docker rmi 名字/id
rm是删除容器,rmi是删除镜像,要删除镜像,需要先删掉其所有容器实例(即便停止运行的也不行,一定要删掉),不然报错如下:
Error response from daemon: conflict: unable to delete 7042885a156a (must be forced) - image is being used by stopped container da58bfa16f38
- 查看容器
# 查看在运行的容器
docker ps
# 查看所有历史容器
docker ps -a
- 停止运行的容器
docker stop 容器id
- 删除容器
docker rm 容器id
# 删除所有停止了的容器
docker rm $(docker ps -qf status=exited)
# 删除所有镜像,语法类似SQL的子查询, -q是只返回容器id
docker rm `docker ps -a -q`
- 运行镜像->容器
docker run [option] 镜像名
# 如运行nginx, 将80端口映射到8080端口,运行成功,可以输入localhost:8080打开nginx主页
docker run -p 8080:80 -d nginx
有些镜像运行是一定要加参数配置的。会先在本地检索,没有去中心仓库下载
- 复制修改容器
# 复制进入容器
docker cp 文件 容器id://路径
# 从容器复制出来
docker cp 容器id:/etc/nginx/nginx.conf /home/..
# 如以下修改nginx首页
docker cp index.html 84a00fc6f89c://usr/share/nginx/html/
注意:只是修改了容器,可以直接看到变化。但是镜像没有被修改。所有下次运行还是没有变化。
- 修改容器提交到新镜像
docker commit -m "注释" 容器id 新镜像名字
更多推荐
已为社区贡献3条内容
所有评论(0)