docker
docker安装
云更新
sudo yum update
安装需要的软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
方案一:
sudo yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
方案二:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker,有y提示按y
sudo yum install -y docker-ce
查看docker版本
docker -v
设置ustc镜像
创建对应的文件,并编辑
mkdir /etc/docker
vi /etc/docker/daemon.json
打开的文件按i,插入下面内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
docker对应的命令
启动命令
systemctl start docker
停止命令
systemctl stop docker
重启命令
systemctl restart docker
服务状态
systemctl status docker
设置开机启动docker服务
systemctl enable docker
docker镜像相关命令
查看镜像(名称、标签、id、日期、内存)
docker images
搜索镜像(名称、描述、评价、官方?、自动构建)
docker search 镜像名称
拉取镜像
不指定版本为最新版
docker pull 镜像名称
指定对应的版本
docker pull centos:7
删除镜像
docker rmi 镜像id
查看容器
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
启动镜像
docker运行
docker run
对应的参数说明:
-i:表示运行容器
t: 表示容器启动后会进入其命令行。
加入这两个参数后,容器创建就能登录进去。即分配一个伪终端
--name :为创建的容器命名
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),
可以使用多个-v做多个目录或文件映射。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。
可以使用多个-p做多个端口映射
创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id
docker run -it --name=mycentos7 centos:7 /bin/bash
创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
进入容器:docker exec -it container_name (或者 container_id) /bin/bash
docker exec -it mycentos2 /bin/bash
退出容器
exit
文件复制
linux到容器
复制到mycentos2的容器的 / 目录下
docker cp abc.txt mycentos2:/
进入mycentos2容器
docker exec -it mycentos2 /bin/bash
查看容器 / 目录下文件
ll
容器到linux
在Linux执行复制;将容器mycentos2的/cba.txt文件复制到 宿主机器的/root目录下
docker cp mycentos2:/cba.txt /root
目录挂载
可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。
创建需要挂载的目录
mkdir /usr/local/test
创建并启动容器mycentos3,并挂载linux中的/usr/local/test目录到容器的/usr/local/test;也就是在 linux中的/usr/local/test中操作相当于对容器相应目录操作
docker run -di -v /usr/local/test:/usr/local/test --name=mycentos3 centos:7
查看容器IP地址
docker inspect mycentos3
删除容器
docker rm 容器名称/容器id
设置容器自动运行
docker update 容器--restart=always
docker拉取Mysql
MySQL部署
拉取MySQL镜像
# 拉取MySQL 5.7镜像(预计1分钟左右)
docker pull centos/mysql-57-centos7
创建容器
docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的远程登陆密码(如果是在容器中使用root登录的话,那么其密码为空)
# 创建mysql5.7容器
docker run -di --name=mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
登录数据库
进入容器
# 进入MySQL容器的操作窗口
docker exec -it mysql5.7 /bin/bash
登录MySQL
# 登录容器里面的mysql
mysql -u root -p
Tomcat部署
拉取tomcat镜像
docker pull tomcat
创建tomcat容器
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat
如果出现 WARNING: IPv4 forwarding is disabled. Networking will not work.
1、编辑 sysctl.conf
vi /etc/sysctl.conf
2、在上述打开的文件中后面添加
net.ipv4.ip_forward=1
3、重启network
systemctl restart network
在浏览器中用ip:8080进行访问tomcat
Nginx部署
镜像拉取
docker pull nginx
创建容器
docker run -di --name=mynginx -p 80:80 nginx
docker run -di -v /usr/share/nginx/html:/usr/share/nginx/html -p 80:80 --name=mynginx nginx
部署redis
拉取镜像
docker pull redis
创建容器
docker run -di --name=myredis -p 6379:6379 redis
进入redis容器
docker exec -it myredis /bin/bash
进入安装目录
cd /usr/local/bin
连接redis
./redis-cli