docker 安装镜像
Posted ifanliwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 安装镜像相关的知识,希望对你有一定的参考价值。
docker 阿里云安装
- 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
- 开启Docker服务
sudo service docker start
- 设置服务开机启动
sudo systemctl enable docker.service
- 加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF‘
{
"registry-mirrors": ["https://9tkx16bl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
- 将当前用户添加到docker组
sudo usermod -aG docker $USER
# 需要重启服务器
mysql
- 下载镜像
docker pull mysql
- 修改配置文件
cp /etc/my.cnf .
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/lib/mysql/log/mysql.log
pid-file=/var/lib/mysql/pid/mysql.pid
- 创建文件夹 作为数据存储的路径
mkdir conf
mkdir data
- 启动
docker run --restart=always -d --name mysql -v /opt/software/mysql/data:/var/lib/mysql -v /opt/software/mysql/conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.29
4.1 命令解析
# 自动重启
--restart=always
# 使用本地的my.cnf配置文件替换默认的文件
-v /mysql/my.cnf:/etc/mysql/my.cnf
# mysql 的数据文件映射到本地的/mysql/data下 前面的那个是本地的
-v /mysql/data:/mysql/data
#
-v /mysql/mysql-files:/var/lib/mysql-files
# 指定mysql启动的名称
--name mysql
# 指定机器的3306端口对应容器的3306端口(后面的)
-p 3306:3306
# 指定mysql的root的密码为root
-e MYSQL\_ROOT\_PASSWORD=root
# 静默-后台启动
-d
- 连接容器
docker exec -ti mysql bash
5.1 连接方式
mysql -uroot --protocol=tcp -p
5.2 指定用户可远程登陆
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ WITH GRANT OPTION;
FLUSH PRIVILEGES;
# mysql 8
CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘root‘;
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ WITH GRANT OPTION;
5.3 mysql的一些管理操作
# 创建数据库
CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
# 创建本地登陆的 username 用户 密码为 username
CREATE USER username@‘localhost‘ IDENTIFIED BY ‘password‘;
# 授权数据库 databasename 中的 tablename 表 给 host 登陆的 username 用户
# 可以使用 *.* 授权所有数据库的所有表
# privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等。如果要授予所的权限则使用 ALL;
GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘
# 指定操作权限
# GRANT INSERT,DELETE,UPDATE,SELECT ON test.user TO ‘foo‘@‘localhost‘;
# 刷新配置
flush privileges;
# 更改密码
update mysql.user set password=password(‘新密码‘) where User="username" and Host="host";
mongodb
# 指定mongodb 的管理员名称
-e MONGO_INITDB_ROOT_USERNAME=mongoadmin
# 指定mongodb 的密码
-e MONGO_INITDB_ROOT_PASSWORD=secret
docker run -d -v /mongo/data:/data/db -p 27017:27017 --restart=always --privileged=true --name mongo -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=secret mongo
redis
docker run -p 6379:6379 -v $PWD:/data:rw -v $PWD/redis.conf:/etc/redis/redis.conf:rw --privileged=true --name redis --restart=always -d redis redis-server /etc/redis/redis.conf
nginx
- 下载
docker pull nginx
- 运行一遍 nginx
docker run --name nginx -p 80:80 -d nginx
- 停掉nginx
docker stop nginx
- 下载 nginx-docker中的文件
docker container cp nginx:/etc/nginx .
- 修改 nginx.conf
user root;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main ‘$remote_addr - $remote_user [$time_local] "$request" ‘
‘$status $body_bytes_sent "$http_referer" ‘
‘"$http_user_agent" "$http_x_forwarded_for"‘;
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name gogs.ifan.com; #监听基于域名的虚拟主机。可有多个,可以使用正则表达式和通配符
charset utf-8; #编码格式
#set $static_root_dir "/Users/doing/static";
location / { #反向代理的路径(和upstream绑定),location后面设置映射的路径
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://192.168.200.11:11530;
}
}
}
- 运行 nginx
docker run --name nginx -v /opt/software/nginx:/etc/nginx -p 80:80 -d --privileged=true --restart=always nginx
gogs
docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
rabbitmq
# 指定端口 本地:docker
-p 5672:5672
-p 15672:15672
# 指定本地数据存储目录
-v /rabbitmq/data:/var/lib/rabbitmq
# 指定 hostname
--hostname rabbitmq
# 指定vhost
-e RABBITMQ_DEFAULT_VHOST=rabbitmq
# 指定管理员
-e RABBITMQ_DEFAULT_USER=admin
# 指定管理员密码
-e RABBITMQ_DEFAULT_PASS=admin
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v /rabbitmq/data:/var/lib/rabbitmq --hostname rabbitmq1 -e RABBITMQ_DEFAULT_VHOST=rabbitmq1 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:management
以上是关于docker 安装镜像的主要内容,如果未能解决你的问题,请参考以下文章