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”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335