安装docker
官方文档
Install Docker Engine on CentOS | Docker Documentation
1、卸载旧版本
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://download.docker.com/linux/centos/docker-ce.repo
-- 阿里云镜像地址
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、更新yum索引包
yum makecache
5、安装docker引擎
docker-ce 社区版 docker-ee 企业版
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
6、启动docker
systemctl start docker
7、卸载docker
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
docker命令
Reference documentation | Docker Documentation
docker version -- docker版本信息
docker info -- docker信息
docker images -- 查看镜像
docker 命令 --help -- 帮助文档
docker ps -a --
docker pull xxx -- 下拉镜像
docker rmi -f 镜像id -- 删除镜像
docker search xxx -- 搜索镜像
docker attach 镜像id -- 进入镜像,推出,镜像停止
docker exec -it 镜像id /bin/bash -- 进入镜像,推出,镜像不停止,推荐
安装Nginx
1、下载镜像
docker pull nginx
2、从nginx容器中映射核心文件
- 1、本地创建文件目录
mkdir -p /opt/docker/nginx/conf.d
mkdir -p /opt/docker/nginx/html
mkdir -p /opt/docker/nginx/logs
touch /opt/docker/nginx/conf/nginx.conf
注:需要先创建个nginx容器,再将本地目录挂载上
docker run --name nginx -p 80:80 -d nginx
- 2、拷贝nginx容器对应的文件默认配置
docker cp nginx:/etc/nginx/nginx.conf /opt/docker/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /opt/docker/nginx/conf.d
docker cp nginx:/usr/share/nginx/html /opt/docker/nginx
docker cp nginx:/var/log/nginx /opt/docker/nginx/logs
- 3、停止并删除nginx容器
docker stop nginx
docker rm nginx
重新启动nginx镜像重新新容器
docker run -p 80:80 --name nginx \
-v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /opt/docker/nginx/html:/usr/share/nginx/html \
-v /opt/docker/nginx/logs:/var/log/nginx \
-d nginx
docker restart nginx
有个小坑,再启动nginx容器时,/etc/nginx/conf.d/conf.d ,会多出个/conf.d,导致宿主机访问
将这个目录删除就好了
安装redis
1、拉镜像
docker pull redis
2、创建宿主机挂载目录
/opt/docker/redis/redis.conf
/opt/docker/redis/data
3、启动redis容器
docker run \
--restart=always \
-p 6379:6379 \
--name myredis \
-v /opt/docker/redis/redis.conf:/etc/redis/redis.conf \
-v /opt/docker/redis/data:/data \
-d redis redis-server /etc/redis/redis.conf \
--appendonly yes
--restart=alway -- 总是开机启动
--appendonly yes -- 开启redis持久化
安装mysql
1、拉去镜像
docker pull mysql:5.7
2、创建挂载目录
mkdir -p /opt/docker/mysql/logs
mkdir -p /opt/docker/mysql/data
mkdir -p /opt/docker/mysql/conf
3、启动容器
docker run
--restart=always \
-p 3306:3306 --name mysql \
-v /opt/docker/mysql/logs:/var/log/mysql \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=密码 \
-d mysql:5.7
4、进入mysql容器
docker exec -it mysql /bin/bash
5、登入mysql
mysql -u root -p
6、检查是否给root用户授权了远程访问
> use mysql;
> select User,authentication_string,Host from user;
-- 如果未开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' ;
-- 刷新权限
flush privileges;
7、重启mysql容器
docker restart mysql
8、这样安装完mysql会有个坑,查看mysql字符集,都是latin1
show variables like 'character%';
mysql> show variables like '%charac%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system |latin1 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)
需要设置成utf8
修改my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
重启mysql容器,再查看字符集编码,就没问题了
mysql8
docker run -p 33063:3306 --name mysql --privileged=true --restart unless-stopped -v /mnt/docker/mysql8.0.20/mysql:/etc/mysql -v /mnt/docker/mysql8.0.20/logs:/logs -v /mnt/docker/mysql8.0.20/data:/var/lib/mysql -v /home/mysql/mysql-files:/var/lib/mysql-files -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=xxxx -d mysql:8.0.20 --lower-case-table-names=1
安装minio
全网最细Docker安装Minio,填满最新版大坑(强烈推荐收藏) - 掘金
安装nacos
1、拉去镜像
docker pull nacos/nacos-server
2、创建本地的映射文件
mkdir -p /root/nacos/conf /root/nacos/logs
touch /root/nacos/conf/application.properties
3、创建容器并启动
docker run --name nacos-standalone -e MODE=standalone -v /path/application.properties:/root/nacos/conf/application.properties -p 8848:8848 -d -p 9848:9848 nacos/nacos-server
4、验证
127.0.0.1:8848/nacos
nacos/nacos
windows docker
docker run --name redis -p 6379:6379 -v /D/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /D/docker/redis/data:/data/ -d redis:latest redis-server /etc/redis/redis.conf
docker run -p 80:80 --name nginx -v /D/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /D/docker/nginx/conf.d:/etc/nginx/conf.d -v /D/docker/nginx/html:/usr/share/nginx/html -v /D/docker/nginx/logs:/var/log/nginx -d nginx
docker cp nginx:/etc/nginx/nginx.conf D:\docker\nginx\conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d D:\docker\nginx
docker cp nginx:/usr/share/nginx/html D:\docker\nginx
docker cp nginx:/var/log/nginx D:\docker\nginx\logs
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -v /D/docker/elasticsearch/service/data:/usr/share/elasticsearch/data -v /D/docker/elasticsearch/service/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /D/docker/elasticsearch/service/config/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.9.3
D:\docker\elasticsearch\service
docker run -p 8848:8848 --name nacos -e MODE=standalone -d nacos/nacos-server:v2.0.3
docker cp nacos:/home/nacos/logs/ D:\docker\nacos
docker cp nacos:/home/nacos/conf/ D:\docker\nacos
docker run -d -e MODE=standalone -v /D/docker/nacos/logs:/home/nacos/logs -v /D/docker/nacos/conf:/home/nacos/conf -p 8848:8848 --name nacos --restart=always nacos/nacos-server:v2.0.3