1.centos7 安装docker
https://docs.docker.com/install/linux/docker-ce/centos/
2.docker 配置阿里云镜像加速
a.注册一个属于自己的阿里云账户(可复用淘宝账号)
b.获得加速器地址连接:
登陆阿里云开发者平台
获取加速器地址 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{ "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3.配置docker服务开机自动启动
docker 服务器开机自启动:
1.systemctl is-enabled docker.service 检查服务是否开机启动
2.systemctl enable docker.service 将服务配置成开机启动
3.systemctl start docker.service 启动服务
systemctl 相关其他命令:
systemctl disable docker.service 禁止开机启动
systemctl stop docker.service 停止
systemctl restart docker.service 重启------------------------------------------------------
容器开机启动:
创建容器时候指定restart参数:
docker run -it -p 6379:6379 --restart=always --name redis -d redis
对已经创建的容器用docker update 更新:
docker update --restart=always xxx
--restart具体参数值详细信息 :
no - 容器退出时,不重启容器
on-failure - 只有在非0状态退出时才从新启动容器
always - 无论退出状态是如何,都重启容器
docker运行hello-world
>docker run hello-world
使用docker安装mysql
1.搜索mysql的docker镜像
>docker search mysql
2.拉取mysql docker pull mysql[:TAG] TAG可选,不选默认选择latest https://hub.docker.com/_/mysql?tab=tags
>docker pull mysql
3.列出本机镜像
>docker images
4.根据mysql镜像创建容器并运行
>docker run --name centos7-mysql -e MYSQL_ROOT_PASSWORD=123456 -P -d mysql
返回容器id
5.查看运行中的容器
>docker ps
6.查看具体容器内部细节
>docker inspect centos7-mysql
返回一个json串
7.连接mysql容器,已交互命令式连接
>docker exec -it centos7-mysql /bin/bash
8.连接mysql数据库
>mysql -hlocalhost -uroot -p
mysql>show databases;
9.远程连接mysql数据库
a.设置mysql远程权限
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
b.刷新权限
mysql>flush privileges;
c.navicat测试连接
在运行以上方式创建的mysql容器时,产生的数据文件是在容器内部,一旦容器删除,那么数据也就丢失,因此,下面创建容器将使用数据卷。使用数据卷有两种方式:DockerFile内添加或者命令添加。
DockerFile内添加:
1.创建DockerFile文件
# volume mysql
FROM centos
VOLUME ["/mysql/config","/mysql/data"]
CMD echo "finished,--------success1"
CMD /bin/bash
2.docker build 根据DockerFile创建镜像
>docker build -f /home/manage/docker/volume/mysql/mysqlvolume -t mysql/volume .
3.查看已有docker 镜像
>docker images
4.run 上面的镜像创建容器
>docker run -it b2c2f12085d4 /bin/bash
5.在容器内创建文件
6.在主机上找出对应容器卷的文件路径
a.>docker inspect b141535f7860
b.在主机上找到对应的文件
c.进入到容器查看相应目录
命令添加:
>docker run --name centos7-mysql -v /home/manage/mysql/config:/etc/mysql/conf.d -v /home/manage/mysql/data:/var/lib/mysql --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -P -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
安装docker-compose
GitHub源
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Daocloud镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
修改已经创建的docker容器的端口映射
对于已经创建的docker容器,如何修改映射的端口号呢?可以参考如下的操作步骤
0) docker container list –all
结果中的CONTAINER ID列为容器id
1) docker inspect <容器id> | grep Id
查看容器hash,<容器id>由步骤0)获得
2) docker stop <容器id>
停止运行中的容器
3) vim /var/lib/docker/containers/[容器hash]/hostconfig.json,(有人提到,如果config.v2.json里面也记录了端口,也要修改)
编辑容器配置文件,<容器hash>由步骤1)获得
修改PortBindings参数配置,宿主机8001端口映射容器80端口示例:
“PortBindings”:{“80/tcp”:[{“HostIp”:””,”HostPort”:”8001″}]},”
4) systemctl restart docker
重新启动docker引擎
5)docker start <容器id>
重新启动docker容器