1.1 Centos 安装docker
国内下载地址 http://get.daocloud.io/
1、更新update到最新的版本
yum update
2、卸载老版本docker
yum remove docker docker-common docker-selinux docker-engine
3、安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5、查看docker版本
yum list docker-ce --showduplicates|sort -r
6、安装docker
yum install docker-ce-18.03.1.ce -y
7、启动docker
systemctl start docker
8、加入开机自启
systemctl enable docker
9、配置国内镜像
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
docker 命令
1.启动
docker start 容器名
2.删除
docker rm 容器名
3.停止所容器
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker ps -a 查看所有容器
docker ps 查看运行的容器
docker rmi -f $(docker images -qa) 删除所有镜像
命令会彻底清除所有容器。
docker system prune -a -f
4.docker build -t 名称 . #如果构建多次出错,可以设置不成缓存数据构建 --no-cache
Usage:docker build [OPTIONS] PATH | URL | -
OPTIONS:
-t ,--tag list #构建后的镜像名称
-f, --file string #指定Dockerfiile文件位置
示例:
1,docker build .
2,docker build -t redis:v1 .
3,docker build -t redis:v2 -f /path/Dockerfile /path
一般常用第2种方式构建,我们在构建时都会切换到Dockerfile文件的目录下进行构建,所以不需要指定-f参
5.创建自定义网络
docker network create --subnet=192.168.1.0/24 mynetwork
6.创建容器
docker run -itd --name nginx-master --net mynetwork -p 8000:80 --ip 192.168.1.2 nginx
ocker run -itd --name nginx8002-102 --net mynetwork -p 8003:80 -v /test:/data --ip 192.168.1.102 nginx #共享文件 -v 一定不能把容器里的配置文件目录共享,因为共享初始化会清空容器的文件目录,会提示找不到配置文件
docker run -it --name redis-master --net mynetwork -p 6380:6379 --ip 192.168.1.2 redis
镜像名一定要放最后,因为创建的时候别的命令可能会有影响造成意外情况 报错
进入镜像内部
docker run -it 容器ID /bin/bash
docker run -it mysql:5.7 /bin/bash
7.进入容器
docker exec -it nginx bash #如果提示容器没有启动,说明创建容器的时候报错了,重新创建的时候去掉-d 不要后台运行,查看报错信息 docker run -it
bash (bash是挂一个前台命令, 如果是比如redis之类的软件容器,必须要前台运行,不能挂后台,要不启动容器就默认退掉了,redis软件之类容器的 如果运行带bash会把容器启动的cmd替换掉,导致redis服务没启动)
8.查看所有容器ip地址
docker network inspect mynetwork
9.Docker 退出容器但不关闭当前容器
方法一:如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
方法二:如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复
使用docker restart命令重启容器
使用docker attach命令进入容器
10.查看容器的日志
docker logs 容器名
11.宿主机复制数据给运用的容器
docker cp $PWD/conf/php.ini 容器名:/usr/local/etc/php/
12导入或导出镜像
docker load --input rocketmq.tar 或 docker load < rocketmq.tar
docker-compose命令
docker-compose up -d 启动目录下默认为docker-compose.yml模板
docker-compose ps 列出项目中目前的所有容器
docker-compose stop 停止正在运行的容器,可以通过docker-compose start 再次启动
docker-compose down 停止和删除容器、网络、卷、镜像。
docker-compose logs 查看服务容器的输出