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的搭建和简单应用的主要内容,如果未能解决你的问题,请参考以下文章