1.安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 安装Docker-Ce
sudo yum install docker-ce
4.报错
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 1:docker-ce-cli-18.09.6-3.el7.x86_64 conflicts docker-io
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker
--> Processing Conflict: 3:docker-ce-18.09.6-3.el7.x86_64 conflicts docker-io
--> Finished Dependency Resolution
Error: docker-ce conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
Error: docker-ce-cli conflicts with 2:docker-1.13.1-96.gitb2f74b2.el7.centos.x86_64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
5.解决办法
# 1、查看安装过的docker:
yum list installed | grep docker
docker.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-client.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
docker-common.x86_64 2:1.13.1-74.git6e3bb8e.el7.centos
# 2、卸载docker:
sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64
# 3、删除容器镜像:
sudo rm -rf /var/lib/docker
# 4、 重新安装docker
sudo yum install docker-ce
6.启动docker
# 开机自启
sudo systemctl enable docker
# 启动docker服务
sudo systemctl start docker
7.添加docker用户组(可选)
# 1. 建立 Docker 用户组
sudo groupadd docker
# 2.添加当前用户到 docker 组
sudo usermod -aG docker $USER
8.镜像加速配置
# 加速器地址 :
# 阿里云控制台搜索容器镜像服务
# 进入容器镜像服务, 左侧最下方容器镜像服务中复制加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["你的加速器地址"]
}
EOF
# 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
9.常用命令
# 下载镜像:docker pull <镜像名:tag> 如:下载centos镜像
docker pull centos
docker pull sameersbn/redmine:latest
# 查看已下载镜像
docker images
# 删除容器
docker rm <容器名 or ID>
# 查看容器日志
docker logs -f <容器名 or ID>
# 查看正在运行的容器
docker ps
# 查看所有的容器,包括已经停止的。
docker ps -a
# 删除所有容器
docker rm $(docker ps -a -q)
# 停止、启动、杀死指定容器
docker start <容器名 or ID> # 启动容器
docker stop <容器名 or ID> # 启动容器
docker kill <容器名 or ID> # 杀死容器
# 后台运行 docker run -d <Other Parameters>
docker run -d -p 127.0.0.1:33301:22 centos6-ssh
# 暴露端口: 一共有三种形式进行端口映射
docker -p ip:hostPort:containerPort # 映射指定地址的主机端口到容器端口
# 例如:docker -p 127.0.0.1:3306:3306 映射本机3306端口到容器的3306端口
docker -p ip::containerPort # 映射指定地址的任意可用端口到容器端口
# 例如:docker -p 127.0.0.1::3306 映射本机的随机可用端口到容器3306端口
docer -p hostPort:containerPort # 映射本机的指定端口到容器的指定端口
# 例如:docker -p 3306:3306 # 映射本机的3306端口到容器的3306端口
# 映射数据卷
docker -v /home/data:/opt/data # 这里/home/data 指的是宿主机的目录地址,后者则是容器的目录地址
10.GUI管理
这里推荐使用 Portainer 作为容器的 GUI 管理方案。
官方地址:https://portainer.io/install.html
安装命令:
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Docker安装常用镜像
1.下载mysql镜像
# docker 中下载 mysql
docker pull mysql
#查看镜像
docker image
#启动镜像
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
#进入容器
docker exec -it [容器名称/ID] bash
#命令说明
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-e MYSQL_ROOT_PASSWORD=root 初始化root用户的密码
character-set-server、collation-server 设置默认的数据库编码为 UTF-8
2.下载redis镜像
#拉取最新版的redis镜像
docker pull redis:latest
#运行容器
docker run -itd --name redis -p 6379:6379 redis
#进入容器
docker exec -it redis bash
#进入redis客户端
cd /usr/local/bin
./redis-cli
#设置密码(可选)
CONFIG SET requirepass 123456
3.Nacos-Server
#下载Nacos-Server镜像
docker pull nacos/nacos-server
#运行
docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos
#访问地址:
http://公网地址或者虚拟机ip地址:8848/nacos/(默认账号密码为nacos)
4.FastDfs
#构建tracker容器(跟踪服务器起到调度作用)
docker run -itd --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs tracker
#使用docker镜像构建storage容器(存储服务器,提供容量和备份服务)
docker run -dti --network=host --name storage -e TRACKER_SERVER=(本机ip地址,不可使用127.0.0.1):22122 -v /var/fdfs/storage:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs storage
#设置访问的端口号,进入stroage容器
vi /etc/fdfs/storage.conf (在最后)
#配置nginx
进入 stroage容器 vi /usr/local/nginx/conf/nginx.conf 可以选择默认的不做修改
#测试上传文件
因为已经挂载了所以先在 /var/fdfs/storage 下放张图片,随后进入容器到 /var/fdfs 目录下运行/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 图片名称
如果上传时报错
ERROR - file: ../client/tracker_client.c, line: 907, fdfs_recv_response fail, result: 2
tracker_query_storage fail, error no: 2, error info: No such file or directory
执行:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf 随后重启容器
因为我使用的是云服务器添加规则允许策略就行 8888、22122、23000端口号,使用的时候一定要确保端口号是开启可访问的.
虚拟机开放端口
firewall-cmd --zone=public --permanent --add-port=8888/tcp
firewall-cmd --zone=public --permanent --add-port=22122/tcp
firewall-cmd --zone=public --permanent --add-port=23000/tcp
测试成功后会返回一串地址 访问 http://ip:8888/返回的地址 就可以访问的到测试图片