Docker生命周期

Dockerfile是一个包含用于组合映像的命令的文本文档,docker通过读取它来构建镜像,镜像可以push到
doker hub等docker仓库中,当然也能从docker仓库中pull别人push上去的镜像。当镜像在本地存在后,可以通过
docker run命令来运行镜像,此时会生成一个容器,我们可以对容器镜像任何修改,当删除容器后,修改不会保留,如果希望下次启动镜像时,可以保留对应的修改,那么可以提交修改到镜像,生成一个新版本的镜像。
docker安装
这里以centos为例:
- 安装docker命令,sudo yum install docker。
- 允许开机自启动:
- sudo systemctl start docker
- sudo systemctl enable docker
- 检查是否安装成功
docker version。
如果使用docker命令时提示一下内容:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Docker镜像
搜索镜像
docker search 镜像名 docker search mysql
如图所示,会显示搜到的相关镜像和对应描述:

| NAME | DESCRIPTION | STARTS | OFFICAL | AUTOMETA |
|---|---|---|---|---|
| 仓库名称 | 镜像描述 | 类似git的starts | 是否为官方仓库 | 是否为docker hub自动构建流程创建 |
拉取镜像
docker pull 镜像名:tag(输入tag表示指定版本的镜像,否则会下载最新版) docker pull mysql:5.6.35

列出本地镜像
docker images
因为我下载了mysql镜像,这里可以看到它:

docker容器
创建并启动容器
docker run
docker run等价于docker create和docker start
这里我们启动一个mysql的容器
docker run -d --name mysql_demo -p 13306:3306 -e
MYSQL_ROOT_PASSWORD=123456 mysql:5.6.35

这里我们通过docker ps命令可以看到我们已经创建了一个叫mysql_demo的容器,并且把宿主机的端口13306映射给容器的3306端口。
通过工具测试,可以连接到docker的数据库,密码是我们创建容器时传递的环境参数123456:

参数说明:
- -i,表示运行容器。
- -t,表示进入容器命令行。
- -- name 给容器分配一个名字
- -d 让容器在后台运行,而不是进入其命令行。
- -p 端口映射,前者是宿主机端口,后者是容器端口。
- -v 目录映射,前者是宿主机目录,后者是容器内目录。
容器常用命令:
- 启动容器:docker start
- 进入容器:docker exec
- 显示运行中容器:docker ps
- 停止容器:docker stop
- 删除容器:docker rm
- 复制文件:docker cp 源文件 目标文件
制作镜像
下次再见~~~