安装docker及使用docker安装其他软件(手动挂载数据卷)
中秋明月,豪门有,贫家也有,极慰人心
Linux安装docker
可以参考官方的安装文档
centos安装docker:
https://docs.docker.com/engine/install/centos/
# 1. 卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像的仓库
# 推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache
# 4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
# 5、启动docker
docker systemctl start docker
# 6. 使用docker version查看是否按照成功
docker version
ubuntu安装docker:
https://docs.docker.com/engine/install/ubuntu/
其中又一个地方需要注意,就是将镜像仓库从国外的换成国内的镜像仓库,如阿里云。
# 移除以前的docker
sudo apt-get remove docker docker-engine docker.io containerd runc
# 配置镜像仓库
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && sudo apt-get update && sudo apt-get install -y docker-ce
# 配置镜像加速器
sudo mkdir -p /etc/docker && sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://epsax6ut.mirror.aliyuncs.com"],
"log-driver":"json-file",
"log-opts": {"max-size":"10m", "max-file":"3"}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker -v # 查看版本
docker常用
docker查看下载的镜像
docker images
docker启动容器
基于镜像新建容器并启动
docker run IMAGE:TAG
- INAGE:镜像名称
- TAG:镜像版本号
注意:一般不使用这种方式来加载镜像容器,最好是手动进行镜像目录与配置文件的挂载。参考下文的docker安装常用软件。
将处于停止状态的容器重新启动
docker container start [container ID or NAMES]
docker容器重新启动
不管容器是否在运行
docker restart [container ID or NAMES]
docker查看容器
查看正在运行中的容器
docker ps
查看所有容器(包括运行中的、已经停止的)
docker ps -a
字段说明
CONTAINER ID : 容器 ID;
IMAGE : 创建容器时使用的镜像;
COMMAND : 容器最后运行的命令;
CREATED : 容器创建时间;
STATUS : 容器状态;
PORTS : 端口信息;
NAMES : 容器名:和容器 ID 一样,可以标识容器的唯一性,同一台宿主机上不允许有同名容器存在,否则会冲突;
docker容器交互
exec(推荐)
docker exec -it [container ID or NAMES]
attach
docker attach [container ID or NAMES]
两者都是使用exit退出容器内部,区别在于,后者退出会导致容器停止运行。
docker停止容器
stop
docker container stop [container ID or NAMES]
docker删除容器
rm
docker container rm [container ID or NAMES]
prune 删除所有已经停止的容器
docker container prune
docker安装常用软件(手动挂载数据卷)
docker镜像仓库地址:
https://hub.docker.com/_/mongo?tab=tags&page=1
可以通过这个查看需要下载的镜像版本
docker安装MySQL
安装mysql5.7
# 拉取镜像
docker pull mysql:5.7 # 运行容器
sudo docker run -p 3306:3306 --name mysql \
-v /home/docker/mysql/log:/var/log/mysql \
-v /home/docker/mysql/data:/var/lib/mysql \
-v /home/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=admin-123456 \
-d mysql:5.7
# 参数说明 -p 3312:3306 将容器的3306端口映射到主机的3312端口
# -v 宿主机文件目录:容器内目录 将容器内文件挂载到宿主机上
# -e MYSQL_ROOT_PASSWORD=root 设置mysql密码为admin-123456
# -d 后台启动
# --name 给启动容器起名字 # 使用docker ps 查看启动的容器
修改mysql配置文件
# 进入配置文件挂载的目录下
cd /home/docker/mysql/conf # 编辑配置文件my.cnf
vim my.cnf # 新增配置文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve # 修改配置文件之后,重启容器
docker restart mysql
docker安装redis
安装redis
# 1、创建配置文件
mkdir -p /home/docker/redis/conf
mkdir -p /home/docker/redis/data
touch /mydata/redis/conf/redis.conf # 2、下载镜像
docker pull redis:latest # 3、启动容器
# 云服务器一定要修改端口或配置密码,否则会被拉去挖矿
docker run -p 6379:6379 --name redis \
-v /home/docker/redis/data:/data \
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf # 4、直接进入redis客户端
docker exec -it redis redis-cli
修改redis配置文件
vim /home/docker/redis/conf/redis.conf # 插入下面内容
appendonly yes # 支持持久化
requirepass xxxxxx # 配置redis密码
# 注意:后面的注释去掉,否则容器运行不起来 # 保存
docker restart redis # 进入redis客户端
docker exec -it redis redis-cli
auth xxxxxx
docker安装monogoDB
mkdir -p /home/docker/mongo/data
mkdir -p /home/docker/mongo/conf
mkdir -p /home/docker/mongo/logs docker pull mongo:latest docker run -d --name mongo -p 27017:27017 \
-v /home/docker/mongo/conf:/etc/mongo \
-v /home/docker/mongo/data:/data/db \
-v /home/docker/mongo/logs:/var/log/mongodb mongo --auth $ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase',db:'admin'},"readWriteAnyDatabase"]})
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
设置容器自启动
docker update [container ID or NAMES] --restart=always
安装docker及使用docker安装其他软件(手动挂载数据卷)的更多相关文章
- 『现学现忘』Docker基础 — 32、通过DockerFile的方式挂载数据卷
目录 1.简单了解一下DockerFile 2.通过DockerFile的方式挂载数据卷 (1)创建DockerFile文件 (2)编辑Dockerfile文件 (3)构建Dokcer镜像 (4)启动 ...
- 1.docker介绍、命令、容器、镜像、数据卷、Dockerfile、常用软件安装、推送阿里云
一.docker介绍 1.docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各 ...
- docker学习笔记(3)——联合文件系统与数据卷
参考资料: 1.官网教程:https://docs.docker.com/reference/ 2.视频教程:https://www.bilibili.com/video/BV1og4y1q7M4?t ...
- docker挂载数据卷
1.Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷,简单的理解就是将数据持久化的工具. 2.在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们 ...
- docker -v挂载数据卷网络异常的问题
docker 删除容器并重新运行容器时报如下异常: docker: Error response from daemon: failed to create endpoint tomcat001 on ...
- docker数据卷技术
数据卷技术 数据卷手动挂载 数据卷容器 part1:数据卷挂载方式 数据卷手动挂载 -v 主机目录:容器目录 #核心参数 #示例 docker run -it --name=centos_test - ...
- 温故知新Docker概念及Docker Desktop For Windows v3.1.0安装
Docker 简介 什么是Docker? Docker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub.它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行, ...
- Docker安装MySQL 8.0并挂载数据及配置文件
安装部署环境 Ubuntu 18.04.3 LTS Docker 19.03.2 MySQL latest(8.0.17) 下载镜像 # docker从仓库中拉取最新版的mysql镜像,如果没加标签的 ...
- Docker(四):Docker安装Redis
查找Redis镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull redis 查看镜像 docker images 创建Redis容器 运行Redis镜像 ...
随机推荐
- Kali MSF漏洞利用
一.前言 漏洞利用是获得系统控制权限的重要途经.用户从目标系统中找到容易攻击的漏洞,然后利用该漏洞获取权限,从而实现对目标系统的控制. 二.Metasploitable Metasploitable是 ...
- UiPath文本操作Get Text的介绍和使用
一.Get Text操作的介绍 从指定的UI元素提取文本值 二.Get Text在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为序列命名及设置Sequence存放的路径 ...
- uipath 如何利用函数split切割换行符?
uipath 如何利用函数split切割换行符? 答案在这 https://rpazj.com/thread-178-1-1.html
- Python基础教程:模块重载的五种方法
环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 $ tree foo foo └── bar.py 0 directories, 1 file bar.py 的内容非常简单,只写 ...
- input标签的事件之oninput事件
最近在写前端的时候,用到了oninput事件.(其中也涉及了onclick) 问题:鼠标点击数字和运算符的时候,文本框里的内容到达一定长度时,会出现无法继续往后面跟随光标的问题. 解决:见下面代码 这 ...
- Markdown扩展语法
目录 Markdown 语法补充 一.快速生成 HTML 表格代码 在线表格编辑器--TablesGenerator 二. 插入视频.音频或GIF 1. 视频 2. 音频 方法一 方法二 方法三 3. ...
- RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
前言 上一篇搭建好了ubuntu宿主机开发环境,本篇的目标系统主要是开发linux+qt,所以需要刷上billdroot+Qt创建的系统,为了更好的熟悉原理和整个开发过程,选择从零开始搭建rk35 ...
- 可控线性序列机(查看除了inout端口外的其他变量的波形的方法)
可控线性序列机: 可控:有个控制端控制何时输出线性序列. 线性序列机:输出一个线性序列. 知识点: 1.包含多个判定条件时用英文()括起来,用&&连接. 2.使能端EN的设置(类似于D ...
- ACWing95. 费解的开关
题解 这道题目有三个状态条件值得考虑: 每一个开关被按0次或者1次才有意义,如果超过1次,那么等同于按0或1次. 最终的结果与按的顺序无关 因为2,所以可以人为地规定比较合理的顺序. 现在以每一行为顺 ...
- 图的存储结构大赏------数据结构C语言(图)
图的存储结构大赏------数据结构C语言(图) 本次所讲的是常有的四种结构: 邻接矩阵 邻接表 十字链表 邻接多重表 邻接矩阵 概念 两个数组,一个表示顶点的信息,一个用来表示关联的关系. 如果是无 ...