docker
docker
安装
yum 包更新到最新
sudo yum update
安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
sudo yum install docker-ce
盒子博客安装教程
# 安装依赖
sudo yum install -y yum-utils
# 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
sudo yum makecache fast
# 安装 Docker
sudo yum -y install docker-ce
# 测试(可选)
sudo docker run hello-world
# 启动 Docker 后台服务
sudo systemctl start docker
# Docker 服务开机启动
systemctl enable docker
设置docker镜像加速器
创建文件
vim /etc/docker/daemon.json
文件内容
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
加载配置文件
sudo systemctl daemon-reload
-
启动docker:
- systemctl start docker
-
停止docker:
- systemctl stop docker
-
重启docker:
- systemctl restart docker
-
查看docker状态:
- systemctl status docker
-
开机启动: 腾讯云需要开启这个,其他不用
- systemctl enable docker
常用指令介绍
使用前缀docker开头
cp:本地文件系统(OS操作系统|宿主机)和容器之间进行文件或者文件夹拷贝
exec:登录一个容器,使用命令行操作正在运行的容器。
images:镜像的集合查询。
ps:容器列表(正在运行的) process status 进程状态 -a 参数表示all所有容器
pull:下载镜像 docker pull centos:7 冒号指定版本号
restart:重启一个或多个容器
rm:删除一个或多个容器
rmi:删除一个或多个镜像 i是image
run:创建一个容器,并运行起来
save:导出镜像到一个文件(tar)中
search:搜索镜像(从Docker Hub)
start:启动一个或多个已经停止的容器
restart:重启动一个或多个已经停止的容器
stop:停止一个或多个正在运行的容器
创建与启动容器
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后(it),容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。 可以不用等号,用空格隔开
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
网上常用密令 dit
交互式方式创建容器
创建前台容器(退出则进程也退出了)
docker run -it --name=容器名称 镜像名称:标签(TAG名) /bin/bash(貌似不用这个也可以)
启动完成后,直接进入当前容器
如果退出容器,则容器会进入停止状态
退出容器
exit
创建后台容器(后台运行的容器)
docker run -id --name=mycentos2 centos:7
进入守护式容器方式:
docker exec -it mycentos2容器名称 (或者容器ID) /bin/bash
目录挂载
创建容器 -v 宿主机目录:容器目录 标签:版本号
docker run -id --name=centos3 -v /usr/local/myhtml:/usr/local/myhtml centos:7
如果你共享的是多级的目录,可能会出现权限不足的提示。
需要添加参数 –privileged=true 来解决挂载没权限问题
查看容器IP地址
docker inspect 容器名称(容器ID)
删除容器
docker rm 容器名称(容器ID)
先停止容器在删除
MySQL部署
docker pull centos/mysql-57-centos7
docker run -di --name=mysql5.7 -p 33306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
docker run -di --name mysql_5.7 \
> -p 33306:3306 \
> -e MYSQL_ROOT_PASSWORD=root \
> centos/mysql-57-centos7
docker run -di --name=容器名字 -p 宿主机端口:容器端口 -e MYSQL_ROOT_PASSWORD=密码 容器名称
tomcat部署
docker pull tomcat:7-jre7
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
docker run -di --name mytomcat \
> -p 9000:8080 \
> -v /usr/local/webapps:/usr/local/tomcat/webapps \
> tomcat:7-jre7
-p表示地址映射 -v 表示目录挂载
Nginx部署
docker pull nginx
docker run -di --name=mynginx -p 80:80 nginx
docker run -id --name mynginx \
> -p 80:80 \
> nginx
Redis部署
docker pull redis
docker run -di --name=myredis -p 6379:6379 redis
docker run -id --name myredis \
> -p 6379:6379 \
> redis
容器保存为镜像
# 保存nginx容器为镜像
docker commit 容器名称 镜像名称
例如:docker commit mynginx mynginx_i
镜像备份
# 命令形式:docker save –o tar文件名 镜像名
# 保存镜像为文件 -o:表示output 输出的意思
docker save -o mynginx.tar mynginx_i
镜像恢复与迁移
# 命令形式:docker load -i tar文件名
docker load -i mynginx.tar