文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
6.1 docker 常用镜像
- 拉取镜像: docker pull xxx:xxx
- 运行镜像:docker run
- 镜像都来自于官网 docker.io
- 镜像 tag 不要用 latest,要固化明确的版本。
表格 alpine 基础镜像
images | 镜像大小 | 实例描述 | 实例启动命令 run | 访问 URL |
---|---|---|---|---|
alpine | 5.57MB | 安全的轻量级 linux | docker run alpine echo '123' | |
redis:alpine | 32.4MB | redis | ||
python:3.7-alpine | 41.8MB | python3.7 | ||
python:3.4-alpine | 72.9MB | python3.4 | ||
nginx:alpine | 286MB | |||
Alpine:
Alpine
操作系统是一个面向安全的轻型Linux
发行版。它不同于通常Linux
发行版,Alpine
采用了musl libc
和busybox
以减小系统的体积和运行时资源消耗,但功能上比busybox
又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine
还提供了自己的包管理工具apk
,可以通过https://pkgs.alpinelinux.org/packages
网站上查询包信息,也可以直接通过apk
命令直接查询和安装各种软件。
$ docker images |grep alpine
alpine latest 0ac33e5f5afa 5 weeks ago 5.57MB
redis alpine 3900abf41552 5 months ago 32.4MB
python 3.4-alpine c06adcf62f6e 3 years ago 72.9MB
表格 常用基础镜像 (不改源码,只作最基础服务的镜像 )
images | 镜像大小 | 实例描述 | 实例启动命令 run | 访问 URL |
---|---|---|---|---|
nginx:1.9 | nginx 后台服务 | docker run --name keefe-nginx -p 8081:80 -d nginx:1.9 | http://IP:8081/ | |
linuxserver/nginx | linux 服务器的 nginx 服务 | |||
tomcat | tomcat | |||
ubuntu:15.10 | 72.8MB | 交互式启动:进入操作系统 ubuntu | docker run -i -t ubuntu:15.10 /bin/bash | |
redis:3.2 | 105MB | redis 后台服务 | docker run -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes | |
rqbbitmq:3.6.15-management | 138MB | rabbitmq server | docker run -d --log-driver=syslog -e RABBITMQ_NODENAME=my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.6.15-management | http://IP:15672/ |
mysql | 448MB | mysql 后台服务 | docker run --name keefe-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest | mysql://xx:3306 |
mongo | mongo | docker run --name mongo -d mongo | ||
tensorflow | 800MB | 交互式启动 tensorflow | docker run -it tensorflow/tensorflow /bin/bash | |
python:3.7 | 852MB | 调用 python 解释器 | docker run python:3.7 python3 -c 'import copy;print("hello")' |
表格 常用服务型镜像(镜像实例可以直接作为提供为业务服务)
images | 镜像大小 | 实例描述 | 实例启动命令 run | 访问 URL |
---|---|---|---|---|
minio | 406MB | 对象存储 | docker run -d -p 9000:9000 -p 9090:9090 --name minio1 -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=123456" -v /data:/data --restart=always minio/minio server /data --console-address ':9090' | http://IP:9090/ |
elasticsearch | 单节点 ES | docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.12.0 | ||
apache/superset:1.0.0 | 1.45GB | 同上。压缩后 535MB | docker run -d -p 8088:8088 --name superset apache/superset:1.0.0 | 同上 |
amancevice/superset | 2.25GB | 后台启动 superset | docker run --name my_superset -d -p 8088:8088 -v /home/ai/superset:/home/superset amancevice/superset | http://IP:8088/ |
wordpress +mysql | 两个容器链接在一起 | docker run --name wordpress --link <contain_name]:mysql -p 80:80 -d wordpress | http://IP/ | |
apache/drill | 936MB | |||
minio: MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几 kb 到最大 5T 不等。
表格 其它镜像 (基础和服务型镜像之外的)
images | 镜像大小 | 实例描述 | 实例启动命令 run | 访问 URL |
---|---|---|---|---|
hello-world | 13.3KB | 运行:打印帮助文档 | docker run hello-world | |
docker/getting-started | 27.4MB | docker 入门文档 | docker run -d -p 80:80 docker/getting-started | |
docker_practice:vuepress | 46.9MB | docker 实践文档 | docker run -it --rm -p 4000:80 ccr.ccs.tencentyun.com/dockerpracticesig/docker_practice:vuepress | |
hashicorp/http-echo | 3.97MB | 服务端回显 | //回显内容来自入参-text 的值,go 实现,不支持 mac 平台 docker run -p 5678:5678 hashicorp/http-echo -text apple |
备注:如果 docker run 在 git bash 下无法启动,可换用 docker toolbox shell。
- 镜像用
:
分隔版本号。---name 指的是当前启动容器名称。-d 后台启动,-i 交互式启动。 - windows 下 docker 环境用
docker-machine ip defalut
获取虚拟 IP,用此 IP 进行访问。
# docker run 时本地无镜像,则从官网下载;再运行
$ docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
Unable to find image 'uifd/ui-for-docker:latest' locally
Trying to pull repository docker.io/uifd/ui-for-docker ...
latest: Pulling from docker.io/uifd/ui-for-docker
841194d080c8: Pull complete
Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749
Status: Downloaded newer image for docker.io/uifd/ui-for-docker:latest
743e47f7ece394774920b35990a72e39622b976042accb69543835e25b08e22c
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/ubuntu latest 1318b700e415 2 weeks ago 72.8 MB
docker.io/amancevice/superset latest bc910e3fc165 5 weeks ago 2.25 GB
docker.io/registry 2 1fd8e1b0bb7e 3 months ago 26.2 MB
docker.io/hello-world latest d1165f221234 5 months ago 13.3 kB
docker.io/uifd/ui-for-docker latest 965940f98fa5 4 years ago 8.1 MB
1. 运行入门容器 hello-world
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
2. nginx 部署
docker run -d -p 8082:80 --name runoob-nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx
命令说明:
- -p 8082:80: 将容器的 80 端口映射到主机的 8082 端口。
- --name runoob-nginx-test-web:将容器命名为 runoob-nginx-test-web。
- -v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
- -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。
- -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论