Docker极简教程

docker有两个很重要的基本概念:镜像image和容器container。
容器:类似虚拟机,包括操作系统和程序,可以像普通服务器一样操作;
镜像:可以理解把容器的某个时刻固定下来,是一层层的文件系统;
容器和镜像能够相互转换,镜像“run”生成容器,容器“ commit” 生成镜像。
镜像还可以通过dockerfile生成。

1.安装docker
Centos7升级安装docker19.03,并使用GPU
第一次安装从第3步开始即可。

2.拉取需要的镜像
镜像可以从docker hub搜索得到
一般最好选择下载官方镜像OFFICIAL IMAGE,个人上传的镜像不保证里面有什么改动。
比如搜索mysql,前面四个都是 OFFICIAL IMAGE,
打开第一个链接,mysql(docker official image),有简单的使用介绍,Tags标签页就是版本信息了,可以选择需要的版本。

#搜索镜像也可以使用
sudo docker search mysql 
#默认下载最新版本 latest
sudo docker pull mysql

下载速度慢的话可以配置国内镜像源

# 创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
{
    "registry-mirrors" : [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://cr.console.aliyun.com/"
  ]
}
# 重启docker服务
$ systemctl restart docker.service

3.查看下载的镜像

sudo docker images

可以看到容器仓库、标签、镜像ID、创建时间、大小。

4.以交互模式进入镜像容器

sudo docker run -it mysql:latest /bin/bash
#或者
sudo docker run -it 4f1413420360("image id") /bin/bash

5.在容器里操作就和普通服务器操作是一样的了,如果是拉取的纯净版镜像,就需要各种配置,最好先配置好国内的镜像源,这样下载速度会大大加快。
在容器里进行操作,在没有测试完成之前,最好不要退出容器。可以打开新的窗口进行其他操作。
可以用一个shell脚本作为启动脚本,把启动命令写在脚本中,方便使用docker启动相应服务。

6.查看正在运行的容器

sudo docker ps -a

可以看到容器ID、对应的镜像、运行的命令、创建时间、状态,端口,命名。

7.主机和容器传输文件

sudo docker cp ("from") ("to")
#容器路径为 “容器ID”:路径
sudo docker cp /data/myfile 36b0de942dbe:/home/data
sudo docker cp 36b0de942dbe:/home/data  /data/myfile

8.如果在容器中已经把程序写好了,需要把当前的容器生成一个新的镜像,方便部署和拷贝

sudo docker commit “容器ID”  “新的镜像名称和版本”
sudo docker commit  36b0de942dbe myMysql:v1.0

9 部署镜像服务

sudo docker run -d -p 3314:3306 myMysql:v1.0(“或者image id”)/mydata/start.sh
后台运行 -d
端口映射 -p "主机端口":"镜像端口"

关于docker的参数都要写在镜像前,不能写在镜像后。

10.查看容器是否正常运行

sudo docker ps -a

如果容器状态为“Up”则正常,“Exited” 则失败,说明这个镜像有bug,则需要修改生成这个镜像的容器,也就是回到第5步,重复这个过程直到成功。

11.容器正常运行,需要进入容器内修改bug

sudo docker exec -it ("容器ID")  /bin/bash
  1. 镜像的保存
    如果有docker私有仓库,需要先给镜像按照私有仓库的命名规则打好标签,再push到仓库中;
sudo docker tag "镜像ID" “标签名”
#这个时候会看到这两个镜像的ID是相同的,其实就是重命名。
sudo push "标签名"

13.镜像的导入导出
如果没有仓库,也可以把镜像打包,然后分享镜像文件。

sudo docker save "镜像ID" > "保存路径"
sudo docker save mysql:latest > /data/mysql.tar
sudo docker load "保存路径"

14.镜像的删除

sudo docker rmi   "镜像ID"

15.容器常用命令

启动容器
sudo docker start “容器ID”
停止容器
sudo docker stop  “容器ID”
重启容器
sudo docker restart  “容器ID”
删除容器
sudo docker rm  “容器ID”
查看端口
sudo docker port  “容器ID”
查看日志
sudo docker logs “容器ID”

你可能感兴趣的:(Docker极简教程)