第一章:安装
centos安装教程:Install Docker Engine on CentOS | Docker Docs
1、操作系统
镜像版本:CentOS-7-x86_64-Minimal-1708.iso
2、yum -y install gcc
3、yum -y install gcc-c++
4、yum install -y yum-utils
5、设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6、更新yum软件包索引
yum makecache fast
7、安装docker引擎
yum -y install docker-ce docker-ce-cli containerd.io
8、启动docker
systemctl start docker
9、校验
docker run hello-world
配置好域名,否则下载不了
9-1、 vi /etc/syconfig/network-scripts/ifcfg-ens33
往配置文件里最后一行写入
DNS1=8.8.8.8
9-2、 vi /etc/resolv.conf
同样 往配置文件里最后一行写入
nameserver 8.8.8.8
9-3、 重启网络服务和docker
service network restart
service docker restart
10、阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://cgh58wzg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
第二章:常用命令
1、帮助启动类命令:
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息:docker info
查看docker总体帮助文档:docker --help
查看docker命令帮助文档:systemctl 具体命令 --help
2、镜像命令:
docker images
docker search 镜像名字。例子:docker search --limit 5 redis
docker pull 镜像名字。例子:docker pull redis:6.0.8
docker push
查看镜像/容器/数据卷所占的空间:docker system df
删除:docer rmi 镜像名字/ID。例子:docker rmi -f 7614ae9453d1,feb5d9fea6a5
虚悬镜像:仓库名、标签都是none的镜像。
3、容器命令:
新建+启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]。例子:
docker run -it ubuntu; exit;(退出)
docker run -it --name=myUbuntu ubuntu bash
端口映射:-P随机端口。-p指定端口。例如:8080:80
列出当前所有正在运行的容器实例:
docker ps
退出容器:
exit:退出时,容器会停止
ctrl+p+q:退出时,容器不会停止
启动已经停止的容器:
docker start 容器id/容器名
停止容器:
docker stop 容器id
强制停止容器:
docker kill 容器名/容器id
删除已经停止的容器:
docker rm 容器ID
一次性删除多个容器:
docker rm -f $(docker ps -a -q) 或者 docker ps -a -q | xargs docker rm
启动守护容器:
docker run -d 容器名
查看docker容器日志:
docker logs 容器id/容器名
查看容器内运行的进程
docker top 容器id
查看docker内部细节:
docker inspect 容器id
重新进入操作系统容器:
docker exec -it 容器id /bin/bash :在容器中打开新的终端,并且可以启动新的进程。用exit退出,容器不会停止
docker attach 容器id:直接进入容器启动命令的终端,不会启动新的进程。容exit退出,容器会停止
拷贝容器内的文件到目标主机:
docker cp 容器id:容器内路径 目的主机路径
导入和导出容器:
export 导出容器的内容作为一个tar归档文件:docker export 容器id > 归档名.tar
import 从tar包中的内容创建一个新的文件系统再导入为镜像: cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号。例子:cat 归档名.tar | docker import - atguigu/ubuntu:3.7
第三章:制作新的镜像
1、docker run -it ubuntu
2、apt-get update
3、apt-get -y install vim
4、docker commit -m="add vim cmd" -a="guody" e8a877e82421 myubuntu:1.1(名称必须小写)
5、发布到私有仓库:
第四章:高级篇
数据库主从复制:
创建主数据库:
docker run -p 3307:3306 --name mysql-master \
-v /mydata/mysql-master/log:/var/log/mysql \
-v /mydata/mysql-master/data:/var/lib/mysql \
-v /mydata/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
cd /mydata/mysql-master/conf;
vim my.cnf;
[mysqld]
server_id=101
binlog-ignore-db=mysql
log-bin=mall-mysql-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
重启容器:docker restart mysql-master
创建主从权限用户:
create user 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'slave'@'%';
创建从数据库:
docker run -p 3308:3306 --name mysql-slave \
-v /mydata/mysql-slave/log:/var/log/mysql \
-v /mydata/mysql-slave/data:/var/lib/mysql \
-v /mydata/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
cd /mydata/mysql-slave/conf;
vim my.cnf;
[mysqld]
server_id=102
binlog-ignore-db=mysql
log-bin=mall-mysql-slave1-bin
binlog_cache_size=1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=mall-myslq-reloay-bin
log_slave_updates=1
read_only=1
重启容器:docker restart mysql-slave
在从数据库配置主从服务
登录从机数据库,执行:
change master to master_host='主数据库的宿主机ip',master_user='slave',
master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000001',
master_log_pos=617,master_connect_retry=30;
查看状态:
show slave status \G;
show master status;
在从数据库开启主从同步:
start slave;
检查主从状态:show slave status \G;