废话不多说,直接安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
这里使用的是阿里云源,可根据自己需求来进行选择
源1:(官方推荐)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
源2:(阿里云源)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
systemctl start docker.service
systemctl enable docker.service
docker version
或者
sudo docker run hello-world
sudo systemctl restart docker
查看docker是否安装成功
yum list installed |grep docker
查看docker运行状态
systemctl status docker
执行以下命令可以删除Docker CE:
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker
在docker官方镜像仓库中搜索需要安装的镜像,地址https://hub.docker.com/
我这里安装的是8.0.26
# 此命令下载的是最新版
docker pull mysql
# 此命令下载的是指定版本的
docker pull mysql:5.7
docker images
mkdir -p mysql && cd $_ && mkdir {conf,data}
或者你可以新建一个
touch my.cnf
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d
max_connections=1000
wait_timeout=120
interactive_timeout=300
lower_case_table_names=1
docker run --restart=unless-stopped -d --name mysql -p 3306:3306 -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.26
docker exec -it mysql /bin/bash
mysql -uroot -p
输入mysql容器创建时指定的密码(-e MYSQL_ROOT_PASSWORD=root):root
我的密码是root,根据情况修改
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
注意:此处修改的是root的localhost方式,可以查看是否可以远程连接,如果不能,可继续设置如下
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
如果还是连接不上,就有可能是防火墙没开
firewall-cmd --list-ports #查看端口开放情况
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放3306端口
systemctl restart firewalld.service #重启防火墙
还有一种可能,my.cnf 配置文件中 需要关闭本机访问的功能(这种情况是走的默认配置,不是的请跳过)
# 如果有如下语句需要注释掉
bind-adress=127.0.0.1
#改为
#bind-adress=127.0.0.1
这里一般情况就能连接成功,但是如果是阿里云服务器的话需要到安全组里开放端口
目前搜寻出两种安装方式:1通过已有的镜像直接pull安装;2自己通过dockerfile等命令打包一个镜像安装(此种方式我们到已有镜像满足不了自身需求时使用);
docker pull primetoninc/jdk:1.8
touch daemon.json
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker images
docker run -it --name jdk1.8 -d primetoninc/jdk:1.8
sudo docker exec -it jdk1.8 /bin/bash
或者
java -version
docker pull redis:6.0.5
docker run --name redis -d redis:6.0.5
mkdir /home/docker_redis
cd /homme/docker_redis
wget http://download.redis.io/redis-stable/redis.conf
chmod 777 redis.conf
vim /home/docker_redis/redis.conf
文件修改小助手
vim 可以设置行号,搜索等功能,快速帮我们定位到需要修改的位置
vim /redis.conf 进入文件后
使用 :set number 打开行号,如果想永久设置需要看下博主的设置Linux永久设置vim行号
接下来我们可以进行搜索 bind 关键字
使用 :/bind 进行查找 使用键盘上 N 键向下寻找,直到找到为止,使用i进行编辑修改;
:wq! #保存修改
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /home/dokcer_redis/redis.conf:/etc/redis/redis.conf -v /home/dokcer_redis/data:/data -d redis:6.0.5 redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–log 日志相关
–name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分(必须为绝对路径),:后表示容器部分。
/home/dokcer_redis/redis.conf:/etc/redis/redis.conf 挂载我的配置文件
/home/dokcer_redis/data:/data 挂载redis的数据路径
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 指定配置文件的路径。/etc/redis/redis.conf指的是容器内的文件路径,对应的宿主机的路径要根据挂载卷的路径找到。我的宿主机路径就是/home/dokcer_redis/redis.conf
–appendonly yes 开启redis 持久化
–requirepass rootroot 设置密码为123456
- 查看容器id
docker ps -a
- 进入容器
docker exec -it 容器id redis-cli
#调用客户端- 输入密码
auth '123456'
set name tome
get name
需要开放防火墙
firewall-cmd --list-ports #查看端口开放情况
firewall-cmd --zone=public --add-port=6379/tcp --permanent #开放3306端口
systemctl restart firewalld.service #重启防火墙
一般自己的linux是可以访问的,如果是阿里云服务器需要去 安全组 的 配置规则 开放端口才可以。
docker pull nginx:1.20.1
docker run --name=nginx -d --restart=always -p 80:80 nginx:1.20.1
docker exec -it 2a5a7b2756c9 /bin/bash
#进入到容器内部
cd /
cd /usr/share/nginx/html
#修改首页内容
echo "www.GGBond.com" > index.html
#查看修改结果
cat index.html
#退出容器重启Nginx容器
exit
#重启nginx
docker stop 2a5a7b2756c9
docker start 2a5a7b2756c9
#1、启动nginx
docker run --name=nginx -d --restart=always -p 80:80 nginx:1.20.1
#2、查看nginx 容器ID
docker ps -a
#3、找到容器ID把文件拷贝到指定目录,这里是/home/nginx/conf/nginx.conf
docker cp b5f5b04c83fe:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
#4、拷贝好后,去目录查看是否存在
cd /home/nginx/conf/
#5、存在就将容器停止并删除
docker stop b5f5b04c83fe
docker rm b5f5b04c83fe
#6、这时候我们进行挂载配置文件和html进行启动nginx,这样我们日后修改配置文件和页面就不需要去容器里了
docker run -d -p 80:80 -v /home/nginx/html:/usr/share/nginx/html:ro -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf --name nginx-02 nginx:1.20.1
#7、查看容器启动是否成功
docker ps -a
#8、访问80端口查看页面,一般情况我们需要将端口开放,阿里云服务器,需要去安全组开放端口,否则无法访问。
#把容器指定位置的东西复制出来
docker cp b5f5b04c83fe:/etc/nginx/nginx.conf /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp /home/nginx/conf/nginx.conf b5f5b04c83fe:/etc/nginx/nginx.conf
docker pull minio/minio
查看镜像
docker images
mkdir -p /home/minio/config
mkdir -p /home/minio/data
注意,正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功
docker run -p 9000:9000 -p 9090:9090 \
--net=host \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=minioadmin" \
-e "MINIO_SECRET_KEY=minioadmin" \
-v /home/minio/data:/data \
-v /home/minio/config:/root/.minio \
minio/minio server \
/data --console-address ":9090" -address ":9000"