docker的搭建和简单应用

Posted cash-su

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker的搭建和简单应用相关的知识,希望对你有一定的参考价值。

  1 dockerserver端安装
  2 先下载docker的yum源
  3 wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  4 然后安装
  5 yum -y install docker-ce
  6 在/etc/docker/里修改daemon.json文件,修改成如下
  7 {
  8 "registry-mirrors":[ "https://registry.docker-cn.com" ]
  9 }
 10 重启守护进程
 11 systemctl daemon-reload
 12 启动docker命令
 13 systemctl start docker
 14 查看版本号的命令
 15 docker --version
 16 查看公网上的镜像
 17 docker search centos:7 (名字,冒号后边的是版本不写默认是latest版本)
 18 查看公网镜像也可以加详细的参数,比如100星级以上
 19 docker search centos -f stars=100
 20 在公网上下载镜像,pull
 21 docker pull centos:7 (名字,冒号后边是版本号不写默认是latest)
 22 查看镜像命令
 23 docker images
 24 想要自己建立镜像需要偶先创建文件目录
 25 mkdir -p /root/dockerfile/library/centos/7
 26 cd /root/dockerfile/library/centos/7/
 27 在目录里创建容器里的简单执行脚本
 28 vim docker.sh
 29 #!/bin/bash
 30 while true 
 31 do 
 32 echo "苏哥"
 33 sleep 5
 34 done
 35 然后写镜像文件Dockerfile名字一定不能错
 36 FROM centos #是基于那个镜像创建,没有的话会去公网下载
 37 LABEL MAINTATNER="SU"#标签,创建者名字
 38 RUN ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#创建之前修改时区
 39 COPY docker.sh /home/test/#将脚本复制到镜像里的test下,路径是相对Dockerfile的文件
 40 RUN chmod +x /home/test/docker.sh#给镜像里边的脚本加执行权限
 41 CMD ["/home/test/docker.sh"]#执行脚本,启动容器时,必须要有一个进程在执行,要不启不 
 42  43 建立镜像
 44 docker build -t su/centos7:1 . (注意需要在有Dockerfile的目录里输入命令)
 45 启动容器
 46 docker run -dit su/centos7:1 /bin/bash(可以加/bin/bash,也可以不加)
 47 docker run -dit --name sunan su/centos7:1 (启动的时候给容器器个名字叫sunan)
 48 -d :放在后天运行
 49 -i:可以交互输入命令
 50 -t:启动一个伪终端
 51 -c:指定几个cpu来运行内存
 52 -m:指定几个内容。
 53 隐形参数--name 给容器起名。
 54 看容器的日志
 55 docker logs sunan(可以是名字,也可以是id)
 56 看启动的容器
 57 docker ps -a(加a是看所有)
 58 开始运行容器
 59 docker start xxx(可以是容器的名字,也可以是容器的id)
 60 重启一个容器
 61 docker restart xxx(可以是容器的名字,也可以是id)
 62 停止运行容器
 63 时时的输出容器的资源使用状况
 64 docker stats xxx --no-stream(容器的名字或者id,类似top命令)
 65 加参数--no-stream是只输出一次就可
 66 docker stop xxx(可以是容器的名字,也可以是容器的id)
 67 切进容器的命令
 68 docker attach xxx(可以是容器的名字,也可以是容器的id)
 69 exit是退出容器
 70 杀容器
 71 docker kill xxx (容器的名字,或者容器的id,直接删掉容器的进程,使其处于停止。)
 72 删除容器
 73 docker rm xxx(容器的名字,或者容器的id,必须先停止容器以后才能删,)
 74 -f 强删
 75 删除镜像
 76 docker rmi xxx (容器的名字,或者容器的id)
 77 -f强删
 78 将一个更改过的容器封装成一给性的镜像(先进去一个容器,搭建个项目,退出从封装)
 79 docker commit xxx(原来的容器,更改过的) xxx/xxx(新的镜像叫什么名字)
 80 不进容器,直接发布命令
 81 docker exec (-dit) xxx(容器的名字,或者id) ls /(想要执行的命令)
 82 参数
 83 -dit直接可以切进去
 84 容器和属主机直接的复制文件命令
 85 docker cp /tmp/dockerfile(文件的路径)xxx:/tmp(容器的名字或者ip,冒号后面是地址)( 
 86 也是吧什么复制到哪里的格式)
 87 创建一个新的容器,
 88 docker create -it xxx(镜像的名字或者id)(用法跟run一样,只是create不启动容器,想要 
 89 启动还需要用start命令启动下)
 90 查看容器进程与源镜像做对比看哪里不一样
 91 docker diff xxx(容器的名字或者id)
 92 返回的结果C是多了什么 
 93 A是少了什么
 94 监控容器的变化
 95 docker events
 96 导出容器
 97 docker export xxx(容器的名字或者id) > yyyy.tar(导出来的容器叫什么名字)
 98 将导出的容器创建为一个镜像
 99 docker import yyy.tar(导出来的容器的名字)zzz(导入要创建的镜像叫什么名字)
100 查看镜像的历史记录
101 docker history xxx (镜像的名字或者id)
102 查看镜像的详细信息
103 docker inspect xxx(镜像的民族或者id)
104 导出镜像
105 docker save xxx(要导出的镜像的名字或者id) > yyy.tar(导出来叫什么明教)
106 导入镜像
107 docker load < yyy.tar (需要导入的镜像的名字。有相同的镜像是不让导入的)
108 暂停容器的命令(unpause是回复暂停的容器)
109 docker pause xxx(容器的名字或者id)
110 查看容器的端口映射协议
111 docker port xxx(容器的名字或者id)
112 想要在启动的时候添加容器的映射端口
113 docker run -dit --name xx -p 80:80 yy(xx容器起名叫,80:80将属主机的80端口映射到容器 
114 里的80端口,yy要启动的镜像的名字)
115 给容器改名
116 docker rename xxx yyy(xxx原来的名字,yyy想要叫的名字)
117 用于克隆镜像的
118 docker tag xxx xxx1(将什么,克隆成什么,可以当场软连接,要删一起删)
119 调整启动以后的容器的cpu和内存
120 docker update -c 2 xxx(需要调整的)
121 -c调整cpu
122 -m调整内存。需要多少直接在后边写就可以了
123 监控容器的的退出状态
124 docker wait xxx(容器的名字或者id)
125 创建一个自定义网路
126 docker network creat lnmp (创建个自定义网路叫lnmp)
127 查看docker网络
128 docker network ls查看所有网桥网路
129 brctl show同上
130 login用于登陆docker hub官方公有的仓库
131 logout用于登出官方公有的仓库
132 push将本地的镜像提交到docker hub
133 挂载容器卷
134 分为两种,volume卷放的地方是指定的,没有回自动创建,不特别指定都是volume类型
135 命令docker volume ls 查看系统卷(用volume挂载不会顶掉原来有的东西,会直接出现到卷里)
136 卷放的地方/var/lib/docker/volumes/
137 docker volume create xxx (创建一个卷,会固定放到指定的地方)
138 查看自volume的卷的命令
139 docker volume ls
140 想要挂载卷需要在启动的时候挂
141 docker run -dit --name nginx-test -p 80:80 --mount src=xxx,dst=/usr/share/nginx/html 
142 nginx(src后边直接写卷的名字,系统会到指定的地方去找,dst写挂到哪里,事例写的是挂到 
143 Nginx的网页目录下)
144 第二种自己创建的目录挂载
145 mkdir -p /www/html
146 docker run -dit --name nginx-test2 -p 81:80 --mount 
147 type=bind,src=/www/html/,dst=/usr/shar/nginx/html (用自己创建的挂在会顶掉原理有的) 
148 用docker搭建一个lnmp的环境
149 首先要自己创建一个叫lnmp的网路
150 docker network create lnmp
151 然后启动mysql的镜像
152 [[email protected] ~]# docker run -dit --name lnmp_mysql --network lnmp -p 3306:3306 
153 --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 mysql:5.6 -- 
154 character-set-server=utf8
155 想容器里创建一个库
156 [[email protected] ~]# docker exec lnmp_mysql sh -c exec mysql -uroot - 
157 p"$MYSQL_ROOT_PASSWORD" -e "create database wp"‘
158 提示一下创建成功
159 mysql: [Warning] Using a password on the command line interface can be insecure.
160 然后开始部署php和Nginx
161 先创建一个网页目录
162 mkdir -p /app/wwwroot
163 然后启动php和ngin的镜像(前题需要下载好richarvey/nginx-php-fpm这个镜像)
164 [[email protected] ~]# docker run -dit --name lnmp_web --net lnmp -p 88:80 --mount 
165 type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm
166 将博客的包解压到自己设置好的挂载目录/app/wwwroot/167 [[email protected] ~]# tar xf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot/
168 [[email protected] ~]# cd /app/wwwroot/
169 然后打开浏览器去访问你的ip地址的88端口就可以了

 

 

 技术分享图片

 

以上是关于docker的搭建和简单应用的主要内容,如果未能解决你的问题,请参考以下文章

简单几步搭建一个基于Docker的Tomcat运行环境!

简单几步搭建一个基于Docker的Tomcat运行环境!

物联网架构成长之路(23)-Docker练习之Elasticsearch服务搭建

docker进阶-利用dcoker Swarm搭建简单集群

zabbix+grafana docker搭建及绘图

docker下部署gitlab