Docker Building
docker安装及使用
●完整参考资料
https://zhuanlan.zhihu.com/p/541477
◆docker官网安装最新版教程centos7
https://docs.docker.com/install/linux/docker-ce/centos/
一、安装
Centos7安装方法
1.卸载已安装文件
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.通过包管理器安装docker包
# 下载yum源
curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
# 创建缓存
yum makecache fast
4.安装Docker Engine-Community
yum install docker-ce
- 其他方法一键下载安装
curl -sSL [https://get.daocloud.io/docker](https://get.daocloud.io/docker) | sh
二、镜像加速镜像加速配置方法
1.创建或修改 /etc/docker/daemon.json 文件,并写入以下内容
{
"registry-mirrors": ["https://srl6r1zj.mirror.aliyuncs.com"]
}
2.依次执行以下命令,重新启动 Docker 服务。
systemctl daemon-reload
systemctl restart docker
其他镜像加速配置daocloud加速站
https://get.daocloud.io/https://www.daocloud.io/mirror#accelerator-doc
Docker轻量级图形页面管理Portainer安装配置(测试不成功)注:详细
https://www.linuxidc.com/Linux/2018-03/151307.htm
三、常用命令
拉取最新版redis:docker pull redis
查看该image:docker images
创建并运行容器:docker run xxx
执行(下次进入)进入到容器:docker exec -it xxx /bin/bash
进入容器(极容易卡住,生产环境不推荐):docker attach xxx
容器重命名:docker rename oldname newname
复制文件:docker cp onelist.txt xinjupyter:/home/jovyan/helloman
# 不管容器有没有启动,拷贝命令都会生效查看容器占用内存:docker stats -a
四、常用服务搭建
1.redis搭建(持久化配置教程)
- 外网访问配置
redis配置文件:推荐下载另下载一个redis安装包,从安装包中获取
注:需要配置一个redis配置文件,让docker中的redis能够访问该文件即可 -
下方是已经下载好的配置文件
http://xiao.cdnxin.top/data/scripts/conf/redis.conf -
创建redis容器
docker run \
-p 6379:6379 \
-v /apps/data/redisdata/data:/data:rw \
-v /apps/data/redisdata/conf/redis.conf:/etc/redis/redis.conf:ro \
--privileged=true \
--name xinredis \
-d redis redis-server /etc/redis/redis.conf
- 进入redis容器
docker exec -it xinredis redis-cli
●配置说明(run表示创建并运行)docker run -p 6379:6379 \ # 端口映射 宿主机:容器-v /apps/data/redisdata/data:/data:rw \ # 映射数据目录 rw 为读写-v /apps/data/redisdata/conf/redis.conf:/etc/redis/redis.conf:ro \ # 挂载配置文件 ro 为readonly–privileged=true \ # 给与一些权限–name xinredis \ # 给容器起个名字-d redis redis-server /etc/redis/redis.conf # deamon 运行 服务使用指定的配置文件
设置redis密码:在配置文件中配置账号密码:使用命令设置密码:config set requirepass xxredis1414进入redis后提示无权限,输入密码登录即可:auth xxredis1414
# 配置文件中需修改下面几项
#bind 127.0.0.1
protected-mode no
appendonly yes//持久化
requirepass yourpassword
2. docker安装Alpine
- Alpine使用创建并运行alpine docker
run --name=xinalpine -itd alpine sh
- 进入系统
docker exec -it xinalpine sh
- 配置镜像源
sed -i 's/[dl-cdn.alpinelinux.org/mirrors.aliyun.com/g](http://dl-cdn.alpinelinux.org/mirrors.aliyun.com/g)' /etc/apk/repositories
- 包管理搜索
[https://pkgs.alpinelinux.org/packages](https://pkgs.alpinelinux.org/packages)
- 更新源&安装软件
apk add --updateapk add --no-cache xxx
- 安装并删除安装包
apk --update add --virtual web_tools xxx #后面的程序都会被归到web_tools组
- 装应用
apk install bashapk install htopapk install vimapk install python3
3. docker安装jupyter
- 拉取镜像(注:该镜像4.91GB)docker pull jupyter/datascience-notebook
-
生成密码:在ipython中执行from notebook.auth import passwdpasswd()输入密码:xiaoxinpwd
-
配置&执行安装&运行jupyterdocker run -d -p 8888:8888 jupyter/datascience-notebook start-notebook.sh –NotebookApp.password=’sha1:4b18ec2cde4b:195bd1018aa7eafce9d95ff2bce315caa233f797′
-
在网页中使用jupyterhttp://ip:8888
4. docker安装mysql
docker run -d -p 3306:3306 -v /apps/data/mysqldata/conf:/etc/mysql/conf.d/ -v /apps/data/mysqldata/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name xinmysql mysql:5.7
5. docker安装mariadb注:解释道的很详细
https://my.oschina.net/iluckyboy/blog/740661
6. docker安装postgres
- 拉取镜像
docker pull postgres
- 创建持久化目录
mkdir /apps/data/postgresdata
- 创建并实例化postgres
docker run --name xiaoxinpostgres -e POSTGRES_PASSWORD=xiaoxinpg -p 5432:5432 -v /apps/data/postgresdata:/var/lib/postgresql/data -d postgres
- 进入容器
docker exec -it xiaoxinpostgres bash
- 操作数据库
psql -h localhost -p 5432 -U postgres -d postgres -W xiaoxinpg
7. docker安装mongodb
- 安装
docker run -p 27017:27017 -v /apps/data/mongodata/db:/data/db --name xinmongodb -d mongo
8. docker安装influxdb
- 安装
docker run -d --name xininfluxdb \
-p 8086:8086 -p 8083:8083 \
-e INFLUXDB_HTTP_AUTH_ENABLED=true \
-e INFLUXDB_ADMIN_ENABLED=true -e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=admin \
-v /apps/data/influxdata/influxdb:/var/lib/influxdb influxdb
**
- 进入容器
docker exec -it xininfluxdb /bin/bash
- 创建管理员用户
# 上方安装步骤中已配置管理账户,下方命令可不执行
# 输入influx进入infuxdb命令行管理界面
influx
# 创建admin用户
create user "admin" with password 'admin' with all privileges
五、打包容器
1.打包方法
# 说明
docker commit -a "<作者>" -m "<字符串消息>" <容器ID> <新镜像名>:<版本号>
# 实例
docker commit -a "xiaoxin" -m "开箱即用的Gogs" 0b5af1e82139 xingogs:1.0
2.查看所有镜像docker images
六、其他
概述:当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:检查本地是否存在指定的镜像,不存在就从公有仓库下载利用镜像创建并启动一个容器分配一个文件系统,并在只读的镜像层外面挂载一层可读写层从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去从地址池配置一个 ip 地址给容器执行用户指定的应用程序执行完毕后容器被终