要求
Docker支持以下的CentOS版本:
CentOS 7(64位)
CentOS 6.5(64位)或更高的版本
Docker要求CentOS系统的内核版本高于3.10,查看本页面的前提条件来验证你的CentOS版本是否支持做cker。
通过uname -r命令查看你当前的内核版本
以下蓝色字体为需要执行执行命令
我用的系统未centOS 7.1如果是最新版centos
请看我的另外一篇文章
centOS docker安装_java知路的博客-CSDN博客
安装Docker
yum -y install docker设置docker国内镜像,阿里云镜像
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9rl160ta.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker
码头安装数据库及rabbitmq
mariadb5 :( mysql的一个分支)
docker run --privileged -d -p 3307:3306 --name mariadb --restart=always -e TIMEZONE=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -v /mnt/mariadb:/var/lib/mysql mariadb:5 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE
最新mariadb
docker run --privileged -d -p 3307:3306 --name mariadb --restart=always -e TIMEZONE=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -v /mnt/mariadb:/var/lib/mysql mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE
MySQL5.7的的:
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=db123456 --name mysql mysql:5.7
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=db123456 --name mysql -e TZ=Asia/Shanghai mysql:5.7
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=db123456 --name mysql -e TZ=Asia/Shanghai -v /mnt/mysql:/var/lib/mysql mysql:5.7
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=db123456 --name mysql -e TZ=Asia/Shanghai -v /mnt/mysql:/var/lib/mysql mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci --character-set-client-handshake=FALSE
mysql8:
docker run --privileged -d -p 3309:3306 --name mysql --restart=always -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=root -v /mnt/mysql:/var/lib/mysql mysql:8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE
mysql8用的加密方式不一样会连接不上,
进入容器:
docker exec -it mysql bash
登录mysql:
mysql -uroot -p
进入mysql数据库
use mysql;
新增用户
create user 'test'@'%' identified by '123456';
设置权限,为test分配权限,以便可以远程连接
grant all PRIVILEGES on *.* to test@'%' WITH GRANT OPTION;
ALTER user 'test'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
更新加密算法
ALTER user 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新数据库
flush privileges;
-
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-
-v $ PWD / conf / my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf / my.cnf挂载到容器的/etc/mysql/my.cnf
-
-v $ PWD / logs:/ logs:将主机当前目录下的日志目录挂载到容器的/ logs
-
-v $ PWD / data:/ mysql_data:将主机当前目录下的数据目录挂载到容器的/ mysql_data
-
-e MYSQL_ROOT_PASSWORD = 123456:初始化root用户的密码
redis:
docker run --name redis -d -p 6380:6379 redis redis-server --appendonly yes --requirepass "test"
test是密码
# docker run --name redis -p 6380:6379 -v $PWD/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
密码配置在redis.conf中,
mongodb:
docker run -d -p 27018:27017 --name mongo mongo
rabbitmq:
docker run -d -p 8086:15672 -p 5672:5672 -p 15674:15674 -p 61613:61613 --hostname mars-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3-management
Nginx
docker run -d -p 8000:80 --name nginx -v /nginx/conf.d:/etc/nginx/conf.d -d nginx
docker run -d -p 8000:80 --name nginx nginx
Jenkins
docker run --name jenkins -p 10080:8080 docker.io/jenkins/jenkins
其他命令
查看镜像
docker images
列出容器
docker ps -a
查看正在运行的容器
docker ps
删除容器
docker rm -f CONTAINERID
创建一个新容器并登入
docker run -i - t IMAGE /bin/bash
搜索可用的docker镜像docker
docker search NAME
查看某一个命令的详细使用方法:
COMMAND --help
进入容器
docker exec -it mysql /bin/bash
docker容器设置自动启动
启动时加--restart=always
docker run -tid --name isaler_v0.0.11 -p 8081:8080 --restart=always -v /alidata/iDocker/run/projectImages/isaler/v0.0.11/log:/usr/local/tomcat/logs isaler_v0.0.11
Flag Description
no 不自动重启容器. (默认value)
on-failure 容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 在容器已经stop掉或Docker stoped/restarted的时候才重启容器
如果已经过运行的项目
如果已经启动的项目,则使用update更新:
docker update --restart=always isaler_v0.0.11