Docker logo中集装箱就是镜像,实现的是硬件的隔离。
Docker镜像流程图:
Docker--入门《二》-LMLPHP
摘自:https://www.imooc.com/learn/824
Docker解决了环境的不一致、弹性的伸缩。

Centos下的安装教程:
http://www.runoob.com/docker/centos-docker-install.html
配置阿里云的加速地址:
参考文档:
https://cr.console.aliyun.com/cn-hangzhou/mirrors
https://jingyan.baidu.com/article/8275fc86407c3546a03cf60a.html

Docker网络:
Docker--入门《二》-LMLPHP
docker网络
网络类型:
Bridge :将容器中的端口和宿主机中的端口进行映射。访问宿主机将会访问到容器中端口,宿主机和容器中之间将会创建docker0网桥,将会和
docker中的eth0网卡相连,
Host:不会有work namespace,将会和主机使用同一个,不会虚拟出自己的网卡IP等信息。而是会用宿主的IP,
none:容器中不会与外界有联系。
容器间通过主机IP进行相互访问
启动时设置端口映射:

docker run -d -p 8080:80 hub.c.163.com/library/nginx

将主机中的8080端口映射到docker容器中
可以在宿主机中通过netstat -lnp|grep 8080查看端口是否映射
将容器中大批量的端口映射到主机中,在主机中的端口为随机生成的

docker run -d -P hub.c.163.com/library/nginx

Docker--入门《二》-LMLPHP

从Docker官方仓库中拉取Hello World

docker pull hello-world

不加地址默认在Docker镜像仓库中拉取

从网易云中拉取Nginx镜像
docker pull hub.c.163.com/library/nginx:latest
docker images 可以查看本机哪些镜像
启动的是在前台启动,在控制台ctrl+C即停止的服务控制端不会收到任何的信息。类似于在linux控制台执行java -jar命令启动jar包。
hub.c.163.com/library/nginx为通过docker images查看到的镜像,正确的启动方式:

docker run -d -p 8080:80 hub.c.163.com/library/nginx

返回一个id,通过docker ps发现与第一行相似,这样可以通过

docker ps

查看是否启动成功
Docker--入门《二》-LMLPHP

进入docker容器:
数字为容器的id,容器run时通过-d返回的id,或docker ps 第一行的数字,
支持类似于模糊查询,只需要id的一部分即可进入

docker exec -it 7bf3341ad5d4 bash

退出容器
在容器中执行exit

关闭指定的容器

docker stop 7b

制作一个简单的镜像,将Web项目打包进镜像.

vim Dockerfile
from hub.c.163.com/library/tomcat

COPY SpringBoot03.war /usr/local/tomcat/webapps

需要在网易云下载基础镜像。下载基础镜像时可在镜像的详情中查看镜像中的目录结构。
在存在dockerfile的目录下
执行docker build .
build时给镜像指定镜像名
docker build -t testspringboot03:latest .
说明一下,镜像名字母只能是小写。
参考:http://onlysomeone.iteye.com/blog/2342374

发布镜像到阿里云:
在阿里云注册账号,在容器镜像服务中 创建镜像仓库和命名空间。然后再每一个镜像参考的管理界面即有如何上传镜像的文档。
Docker--入门《二》-LMLPHP
登录时需要输入密码。
执行如下命令:
$ sudo docker login --username=1586350174@qq.com registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/text/dockertext:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/text/dockertext:[镜像版本号]
可参考官方文档:
https://cr.console.aliyun.com/cn-hangzhou/repositories
上传成功后可在镜像搜索中根据镜像仓库名搜索到上传上去的镜像信息
Docker--入门《二》-LMLPHP

删除本地的镜像然后从阿里云中拉取
删除:docker rmi -f registry.cn-hangzhou.aliyuncs.com/text/dockertext:1.0.1
注意需要制定版本号
删除本地镜像:
Docker--入门《二》-LMLPHP
从阿里云中拉取镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/text/dockertext:1.0.1
Docker--入门《二》-LMLPHP
注意后面的地址为公有网络地址。经典内网和专有网络不可行,无法拉取下来。

镜像中安装mysql:
启动:docker run -e MYSQL_ROOT_PASSWORD=123123 -p 3307:3306 -d hub.c.163.com/library/mysql
镜像下载中心:
https://c.163yun.com/hub#/m/repository/?repoId=2955

10-07 20:45