Docker(Linux)学习笔记以及Redis/MariaDB的容器使用后台全自动启动
1:Docker安装,由于Docker后续pull镜像的服务器默认是在国外的,速度实在是太慢,这里使用阿里云的镜像
阿里云的Docker CE 镜像源站进行安装 docker ===========Ubuntu 14.04/16.04(使用 apt-get 进行安装)====== # step : 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step : 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step : 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step : 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce # 安装指定版本的Docker-CE:
# Step : 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.~ce-~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.~ce-~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step : 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION] =========CentOS (使用 yum 进行安装)====== # step : 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step : 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step : 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step : 开启Docker服务
sudo service docker start # 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=
#
# 安装指定版本的Docker-CE:
# Step : 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03..ce-.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.-.el7.centos)
# sudo yum -y install docker-ce-[VERSION] ======安装校验Docker是否成功 root@fengge:$ docker version
check一下是否安装成功!
2:Docker常用的一些指令
========Docker 拉取一个redis镜像并后台启动
docker search redis;
docker pull redis:latest; docker run --name zrfredis -p : -d redis:latest redis-server docker stop redis容器id;
docker start redis 容器id; 网上有些文章说,要让docker 的容器自动在开机启动,是写脚本,比如在 rc.local 中写。
其实完全没必要这么麻烦,docker 有相关指令,docker run 指令中加入 --restart=always 就行。
sudo docker run --restart=always ..... 如果创建时未指定 --restart=always ,可通过update 命令设置
docker update --restart=always xxx ==》 docker run --name zrfredis03 -p : -d --restart=always redis redis-server ==》docker run --name zrfmysql01 -p : -d --restart=always -e MYSQL_ROOT_PASSWORD=aoe88 mariadb =============
我的阿里云镜像配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://qq_T_a9h7mv3n.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker ============================
一、普通指令 启动 Docker
sudo systemctl start docker 停止 Docker
sudo systemctl stop docker 普通重启 Docker
sudo systemctl restart docker 修改配置后重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker 查看版本
docker version 查看Docker 信息
docker info Docker 帮助
docker --help 二、镜像命令 列出本机Docker上已经安装的镜像:
docker images 搜索Docker hub上面的镜像 # 普通搜索,以Tomcat为例
docker search tomcat # 搜索star大于50的镜像实例
docker search -s tomcat 从Docker Hub上面下载镜像 # 以下载tomcat为例
docker pull tomcat[:version]
删除本地的某一个镜像 # 以删除mysql为例
docker rmi mysql[:version]
# 通过镜像ID删除
docker rmi -f 镜像ID
# 通过镜像ID删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG
# 删除全部
# docker images -qa : 获取所有镜像ID
docker rmi -f $(docker images -qa) 镜像打包与运行 #打包一个我们自己的 mysql
docker commit -a fengge -m="package my tomcat" 要打包的镜像ID fengge/mysql:1.0
# -a : 作者名称
# -m : 打包信息 #启动我们自己打包生成的 mysql
docker run -it -p : fengge/mysql:1.0 三、容器命令 启动容器 # 新建并进入容器,最后一个为本地容器的ID
docker run -it --name="rivercentos001" 9f38484d220f # 为容器启一个名称
-name="新容器名称"
# 后台运行容器,并返回容器ID,也就是启动守护士容器
-d
# 以交互模式运行容器,通常与-t同时使用.
-i
# 为容器重新分配一个伪终端,通过与-i同时使用
-t
# 随机端口映射 [大写P]
-P
# 端口映射 [小写P]
-p
# 数据卷 加参数 ro:容器内的目录只读,不可写
-v /宿主机绝对路径目录:/容器内目录[:ro] 镜像名 查看当前正在运行的Docker 容器 docker ps
# 参数
# 列出当前正在运行的以及历史上运行过的
-a
# 显示最近创建的容器
-l
# 显示最近创建的N个容器
-n
# 静默模式,只显示容器编号
-q
# 不截断输出
--no-trunc 退出容器 # 退出并停止
exit # 容器不停止退出
ctrl+P+Q 启动容器
docker start 容器ID或容器name 重启容器
docker restart 容器ID或容器name 停止
docker stop 容器ID或容器name 强制停止
docker kill 容器ID或容器name 删除容器 # 删除已经停止的容器
docker rm 容器ID或容器name
# 强制删除已经停止或正在运行的容器
docker rm -f 容器ID或容器name 一次性删除所有正在运行的容器
docker rm -f $(docker ps -qa) 重新进入容器 # 第一种方式
docker attach 容器ID或容器名称
# 第二种方式{隔山打牛式,在宿主机向容器发送命令并获取结果}
docker exec -t 容器ID或容器名称 ls# 列出文件列表
# 交互
docker exec -it rivertomcat /bin/bash
从容器内拷贝文件到宿主机 docker cp 容器ID或容器名称:/文件路径与文件名 宿主机地址
# 例,拷贝容器river的aaa文件夹下的a.txt到宿主机的当前位置
docker cp river:/aaa/a.txt .
四、日志命令 docker logs -f -t --tail 容器ID或容器名称
# 加入的时间戳
-t
# 跟随最新的日志打印
-f
# 输出最后几行的日志
--tail 行数 # 启动一个centos,并且每两秒在Console输出一个Hello fengge
docker run -d --name river centos /bin/sh -c "while true;do echo hello fengge;sleep 2;done"
# 查看最后10行的日志
docker logs -f -t --tail river #查看容器内的进程
docker top 容器ID或容器名称 五、DockerFile解析 FROM 基础镜像,当前新镜像是基于哪个镜像的。 MAINTAINER 镜像维护者的姓名和邮箱地址。 RUN 容器构建时需要运行的命令。 EXPOSE 当前容器对外暴露出的端口。 WORKDIR 指定在创建容器后,终端默认登陆的进来工作目录,也不是运行并登录进来的当前目录位置。 ENV 用来构建镜像过程中设置环境变量。 ADD 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包。 COPY 类似ADD,但只是复制,不带解压压缩包的功能。 VOLUME 容器数据卷,用于数据保存和持久化工作。 CMD 指定一个容器启动时要运行的命令,DockerFile中可以有多个CMD指令,但只有最后一个会生效执行。 ENTRYPOINT 指定一个容器启动时要运行的命令 ENTRYPOINT的作用和CMD一样,都是在指定容器启动程序及参数 相当于CMD的升级版本,CMD只能执行一条命令,运行时如果加一些参数是不行的.但如果把CMD替换成ENTRYPOINT就可以在Run镜像的时候在尾部追回指令. 简单的说如果Run镜像的时候追回了命令,CMD会用追回的覆盖掉旧的,ENTRYPOINT会追回执行。 ONBUILD 当构建一个被继承的DockerFile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。
3:直接上学习的一些主要的截图(Redis/MariaDB的容器使用后台全自动启动):
设置Redis/MariaDB容器后台全自动启动
重启Linux以及关机开机Linux系统后,发现相关容器已经启动
客户端连接Docker中的Redis容器实例成功!
有时候我们需要直接进入如 Redis的Docker容器中
Docker(Linux)学习笔记以及Redis/MariaDB的容器使用后台全自动启动的更多相关文章
- Docker学习笔记之--.Net Core应用容器通过网桥连接Redis容器(环境:centos7)
上节演示通过应用容器连接sql server容器,连接:Docker学习笔记之--.Net Core项目容器连接mssql容器(环境:centos7) 本节演示安装 redis容器,通过网桥连接 先决 ...
- Linux~学习笔记目录索引
回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...
- SpringBoot学习笔记:Redis缓存
SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括Stri ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- Linux学习笔记(一)2015.4.13
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...
- 20160127 linux 学习笔记
Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...
- linux —— 学习笔记(汇总)
笔记目录:一.系统知识 和 基本概念 二.常用操作 三.系统管理(内存.设备.服务等管理) ...
- Linux学习笔记-林耐斯Notes-Linux就该这么学
Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...
随机推荐
- zTree插件的应用
需要用到的js和css文件 <link rel="stylesheet" href="__PUBLIC__/zTree/css/demo.css" typ ...
- Python【day 13】内置函数02
一.作用域相关-2个 1.locals() 参数是空 返回当前位置作用域的所有变量,返回的是字典 当前位置:函数内,返回局部变量 当前位置:函数外,返回全局变量 2.globals() 参数是空 返回 ...
- C#如何将DataTable中的列名复制到另一个DataTable
C#如何将DataTable中的列名复制到另一个DataTable? 仅复制列名,不复制列下的数据: var newDt = new DataTable(); newDt = oldDataTable ...
- 「SAP 技术」SAP BP显示供应商账户组时候的怪现象
SAP BP显示供应商账户组时候的怪现象 BP事务代码显示某个vendor的时候,笔者发现对于账户组字段选项列表里,不显示当前vendor的account group. 如下图,该供应商的accoun ...
- 使用JS通过Web API执行批量操作,多个操作是一个事务!
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复235或者20161105可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- 版本管理·玩转git(推到远程仓库)
经过前面的练习,你在本地的仓库里管理代码已经比较熟练了,但如果是团队开发呢,如何配合起来呢? 我们可以把版本仓库放在互联网上,开发者把自己最新的版本推到线上仓库,同时,把线上仓库的最新代码拉到自己本地 ...
- ABP进阶教程11 - 小结
点这里进入ABP进阶教程目录 效果预览 至此,ABP进阶教程的查询/分页/排序/导出/打印示例已完成,效果如下 登录 首页 办公室信息 院系信息 课程信息 教职员信息 学生信息 新增 修改 删除 查询 ...
- Web服务器—Nginx
Nginx常用命令: 启动nginx服务 [root@localhost ~]# service nginx start [root@localhost ~]# systemctl start ngi ...
- Lnmp架构部署动态网站环境.2019-7-3-1.2
Nginx安装 一.安装准备 Pcre(Perl Compatible Regular Expressions,兼容正则表达式)安装pcre库是为了使Nginx支持HTTP Rewrite模块. 安装 ...
- 一次shell脚本小事故,从中学习排错过程-软件测试
一次shell脚本小事故,从中学习排错过程 事出,童鞋使用shell脚本搭建测试环境的过称中..... 配置环境变量文件:/etc/profile(用于升级JDK或其他) 手动编辑方法:vi /etc ...