关于docker实战

Docker操作步骤

基于CentOS 7.x

# 配置好yum源--备份
mv /etc/yum.repos.d/CentOS-Base.repo \
/etc/yum.repos.d/CentOS-Base.repo.backup

# 高兴可以自己百度找阿里的yum源

运行以下指令生成缓存

yum clean all
yum makecache

接着进行安装Docker18.09(可从外部导入docker安装包)

# 也可以在nexus库进行安装 ce代表社区版
yun install -y docker-18.09.7-ce


# 启动参数配置(包括 docker 镜像代理配置)     注:debug等级的设置便于学习
cat << EOF > /etc/docker/daemon.json
{
    "log-level":"debug",  
    "live-restore": true,
    "bip": "172.17.192.1/24",
    "dns": ["192.48.120.250"],
    "storage-driver":"overlay2",
    "registry-mirrors": ["http://dockerg.paas.x"],
    "insecure-registries": ["dockergroup.paas.x",  
    "dockerofficial.paas.x", "dockeropen.paas.x",  
    "dockerg.paas.x", "dockerhubcn.paas.x",  
    "dockerhub.paas.x","hub.x"]
}
EOF


##刷新配置并重启 docker
systemctl daemon-reload
systemctl restart docker

解读daemon.json文件

docker 属于 CS 架构, 如下图. 守护进程是它的核心组件, docker 所有的能力都技术以 daemon 来输出.
daemon.json 是 docker 守护进程配置文件, 它主要描述的守护进程的能力, 详见: https://docs.docker.com/engine/reference/commandline/dockerd/.
其中 bip 是网桥 ip, 默认情况是可以随意设置的, 默认值为 172.17.x.x 只要不冲突即可
storage-driver 的类型有很多, 官方推荐 overlay2, 详见: https://docs.docker.com/storage/storagedriver/select-storage-driver/.,每类存储驱动类型的性能和适用场景都一定差异, 作为初学者, 了解 aufsoverlay2 两种即可.
docker layer特性就是 写时复制, 默认状态下是只读的, 容器启动后你可以去修改文件系统下的任何文件, 但是它会形成一个新的layer. 假设原镜像为 10 层, 当容器启动后, 你在容器里修改了任意的文件, 基于 写时复制 的特性, 会临时生成一个 11.th 层. 如果没 commit, 那么这个临时的 11.th layer 将不会生效. 最终导致的结果就是容器重启后, 你写的变更的内容将还原为镜像的原始状态.
registry-mirrors: 远程镜像库, 默认为docker 官方镜像库, 在公司环境下一般建议使用镜像私服
insecure-registries: docker 有自己的安全机制, 默认情况下必须使用 https 访问远程镜像库, 但是内部条件下, 大多只提供 http, 不提供 https, 因此 insecure-registries 配置的远程库, 就可以以 http 访问.


执行docker info查看docker是否安装成功

docker version
#显示以下信息表示安装成功
Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:26:28 2019
  OS/Arch:          linux/amd64
  Experimental:     false

查看docker镜像

$ docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE

向中心拉取或者在官网拉去Tomcat8的镜像

docker pull tomcat:8.5-jre8

重命名tomcat镜像的名字

# username为自行填写的用户名
docker tag tomcat:8.5-jre8 dokeropen.paas.x/username/tomcat:8.5-jre8

登录并推去中心的镜像仓库

# 登录docker,用的是中心的镜像仓库
$ docker login dockeropen.paas.x
Username (denghm): denghm   #你的用户名
Password:                   #你的密码
Login Succeeded

# 推镜像
$ docker push dockeropen.paas.x/denghm/tomcat
# 结果:提示推送成功
The push refers to repository [dockeropen.paas.x/denghm/tomcat]
1a9d06dd524f: Layer already exists  
de6d5c01d209: Layer already exists  
4c67d93ae2ce: Layer already exists  
blob upload invalid: blob upload invalid

查看Tomcat镜像暴露在外的默认端口

通过 docker history 也可以查看端口, 因为 Dockerfile 里 EXPOSE 是单独一行

# 查看该镜像的内部信息
docker inspect tomcat:8.5.5-jre8
其中在内会发现
"ExposedPorts": {
                "8080/tcp": {}
            }

查看守护进程的日志

sudo journalctl -u docker

守护进程日志会记录你的所有关于docker的操作

docker运行Tomcat镜像

#####有多种方式运行docker

# 普通运行
docker run tomcat:8.5.5jre-8


# 带有交互模式【-it】/守护模式【-d】和 映射其他端口【-p source:target】
docker docker run -d -p 8081:8080 tomcat:8.5.5-jre8


# 查看docker进程,判断是否启动
docker ps

# 查看docker所有进程
docker ps -a


# 查看日志(容器id通过ps获取)
docker logs -f 容器id

# 进入docker容器
docker exec -ti 容器id /bin/bash

困难:以原来的方式去进入镜像内去修改tomcat的文件,需要在镜像内安装所需的插件,非常麻烦

在容器内执行vim会发现,没有这个插件,需要自行下载

ls
RELEASE-NOTES.txt  asf-logo-wide.svg  bg-middle.png    bg-nav.png    favicon.ico  tomcat-power.gif  tomcat.gif  tomcat.svg
WEB-INF            bg-button.png      bg-nav-item.png  bg-upper.png  index.jsp    tomcat.css        tomcat.png

vim index.jsp
bash: vim: command not found

可通过数据卷volume的方式,把某些目录挂载出来,在外部进行修改,方便操作

# 创建数据卷
docker volume create my-vol

# 查看自己创建数据卷的信息,发现挂载后会放在/var/lib/docker/volumes/my-vol/_data目录下
docker volume inspect my-vol
[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
        "Name": "my-vol",
        "Options": {},
        "Scope": "local"
    }
]
#此时可以通过这个指令把对应的容器内部的/usr/local/tomcat/webapps/ROOT/目录挂载出来
docker container run -d --volume my-vol:/usr/local/tomcat/webapps/ROOT/ -p 8081:8080 tomcat:8.5-jre8

#挂载后运行后,到/var/lib/docker/volumes/my-vol/_data目录下,会发现已经挂载出来
ls
asf-logo-wide.svg  bg-middle.png    bg-nav.png    favicon.ico  RELEASE-NOTES.txt  tomcat.gif  tomcat-power.gif  WEB-INF
bg-button.png      bg-nav-item.png  bg-upper.png  index.jsp    tomcat.css         tomcat.png  tomcat.svg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容