Docker使用指南

313 阅读2分钟

Docker生命周期

QQ20191003-101512@2x.png

Dockerfile是一个包含用于组合映像的命令的文本文档,docker通过读取它来构建镜像,镜像可以push到doker hub等docker仓库中,当然也能从docker仓库中pull别人push上去的镜像。
当镜像在本地存在后,可以通过docker run命令来运行镜像,此时会生成一个容器,我们可以对容器镜像任何修改,当删除容器后,修改不会保留,如果希望下次启动镜像时,可以保留对应的修改,那么可以提交修改到镜像,生成一个新版本的镜像。

docker安装

这里以centos为例:

  1. 安装docker命令,sudo yum install docker。
  2. 允许开机自启动:
  3. sudo systemctl start docker
  4. sudo systemctl enable docker
  5. 检查是否安装成功docker version

如果使用docker命令时提示一下内容:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

请检查是否启动docker。

Docker镜像

这里我们以mysql镜像为例进行举例:

搜索镜像

docker search 镜像名 docker search mysql

如图所示,会显示搜到的相关镜像和对应描述:

QQ20191003-145501@2x.png

NAME DESCRIPTION STARTS OFFICAL AUTOMETA
仓库名称 镜像描述 类似git的starts 是否为官方仓库 是否为docker hub自动构建流程创建

拉取镜像

docker pull 镜像名:tag(输入tag表示指定版本的镜像,否则会下载最新版) docker pull mysql:5.6.35

QQ20191004-105702@2x.png

列出本地镜像

docker images

因为我下载了mysql镜像,这里可以看到它:

QQ20191004-105823@2x.png

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

QQ20191004-110002@2x.png

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

参数说明:

  1. -i,表示运行容器。
  2. -t,表示进入容器命令行。
  3. -- name 给容器分配一个名字
  4. -d 让容器在后台运行,而不是进入其命令行。
  5. -p 端口映射,前者是宿主机端口,后者是容器端口。
  6. -v 目录映射,前者是宿主机目录,后者是容器内目录。

容器常用命令:

  1. 启动容器:docker start  
  2. 进入容器:docker exec
  3. 显示运行中容器:docker ps  
  4. 停止容器:docker stop  
  5. 删除容器:docker rm
  6. 复制文件:docker cp 源文件 目标文件

制作镜像

下次再见~~~