简介 Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上,基于go语言并遵从Apache2.0协议开源 Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运行。
CentOS镜像配置
配置了镜像站点以后服务器下载东西的速度会快点
参考:https://developer.aliyun.com/mirror/?spm=a2c6h.13651104.0.d1002.154412b2ZxG98v
备份 1 2 # 备份镜像文件(好像会根据CentOS的版本不同 CentOS-Base.repo文件名也不相同) $ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新镜像配置文件 1 2 # 下载新的的CentOS-Base.repo 到 /etc/yum.repos.d/ https://mirrors.aliyun.com/repo/Centos-7.repo这个链接会根据版本不同也会发生变化,这里是7版本 $ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
编辑 1 2 # 这一步反正是官网的操作,应该是编辑配置文件 $ sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
Docker的安装
参考官方文档:https://docs.docker.com/engine/install/centos/
卸载旧版本 1 2 3 4 5 6 7 8 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
设置存储库 1 2 3 4 5 6 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
安装Docker引擎 1 2 3 4 5 6 # 方式一:安装最新版本的Docker Engine和容器 sudo yum install docker-ce docker-ce-cli containerd.io # 方式二:安装指定的版本 yum list docker-ce --showduplicates | sort -r #1.查看版本 # docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> 版本号为第二列从第一个冒号(:)到第一个连字符(-) sudo yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io #2.安装指定版本
启动docker 1 2 3 4 5 6 # 启动docker sudo systemctl start docker # 版本查看 docker -v # 设置开机启动 systemctl enable docker
Docker安装程序 Portainer 安装
通过web页面进行管理镜像和容器,参考:https://www.jianshu.com/p/575de760bfd4
1 2 3 4 5 6 7 8 9 10 11 12 # 搜索相关Portainer镜像,以免错过更好的第三方镜像 docker search portainer # 下载选定的Portainer镜像,这里我们选择下载量最多的官方镜像,如果未指定版本则默认为最新版本,latest版本 docker pull portainer/portainer # 运行镜像:本机模式 docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer # 运行镜像:远程模式 docker run -d -p 9000:9000 --restart=always --name prtainer portainer/portainer 访问Portainer容器:http://IP:9000 首次登录需要设置admin的密码 # 开放9000端口 firewall-cmd --zone=public --add-port=9000/tcp --permanent
注:–restart=always,无论退出状态是如何,都重启容器,可达到开机自启
删除容器
可通过Portainer的可视化界面进行删除
删除Image
删除多余的镜像文件,需要先删除容器后再删除镜像
mysql 允许远程访问 1 2 3 4 5 6 7 8 9 10 11 12 # 拉取 mysql 镜像 docker pull mysql:latest # 启动容器分配端口 及密码 注意服务器端口的开放情况 docker run -itd --name centos7_mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql # 查看正在运行的容器 docker ps # 进入指定容器 docker exec -it centos7_mysql57 /bin/bash # 登录mysql控制台(回车后输入密码) mysql -u root -p # 设置远程登录权限校验版本(8 及以上版本失效百度试下) grant all privileges on *.* to 'root'@'%' identified by 'abcd0987' with grant option;
Nginx 安装 1 2 3 4 5 6 7 8 docker search nginx docker pull nginx docker run -d --name docker_nginx -p 8080:80 --restart=always nginx http://49.234.62.82:8080/
配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 docker cp docker_nginx:etc/nginx/nginx.conf $PWD /nginx.conf server { listen 80 default_server; listen [::]:80 default_server; server_name localhost; include /etc/nginx/default.d/*.conf; location /perf { root /ada/nginx/html; index perf.html perf.htm; } location /security { root /ada/nginx/html; index security.html security.htm; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } docker cp $PWD /nginx.conf docker_nginx:etc/nginx/nginx.conf
html文件 1 2 3 4 5 6 7 8 9 10 11 docker exec -it docker_nginx /bin/bash mkdir /ada/nginx/html -pexit docker cp /ada/nginx/perf.html docker_nginx:/ada/nginx/html/perf.html docker cp /ada/nginx/security.html docker_nginx:/ada/nginx/html/security.html docker restart docker_nginx
Redis 安装 1 2 3 4 docker pull redis:latest docker images
配置 下载配置文件
服务器配置
创建一个 redis/data 文件用于存放配置文件和数据
上传刚才下载的配置文件到 redis 目录下
1 2 3 4 mkdir -p redis/datavim redis/data/redis.conf
1 2 3 4 5 bind 127.0.0.1 daemonize no requirepass 你的密码 appendonly yes tcp-keepalive 300
启动
1 2 docker run -p 6379:6379 --name redis -v /root/redis/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes