一.docker安装
# 1.下载官方源
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
# 2.将官方源替换成清华源
sed -i 's+https://download.docker.com+https://mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 3.安装docker
yum -y install docker-ce docker-ce-cli containerd.io
# 4.查看docker详细信息
docker info
报错
failure: repodata/repomd.xml from docker-ce-stable: [Errno 256] No more mirrors to try.
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/repodata/repomd.xml: [Errno 14] curl#60 - "The certificate issuer's certificate has expired. Check your system date and time."
修改配置文件/etc/yum.conf,在其中加入sslverify=0即可
镜像加速
二.镜像操作
#查看镜像
docker images
# 查找镜像
docker search nginx
# 拉取镜像
docker pull <镜像仓库名称>:<镜像的tag标签>
docker pull mysql:5.7
# 删除镜像
docker rmi nginx:latest
docker rmi c059bfaa849c
#导出镜像
docker save alpine:latest -o /tmp/alpine_latest.tar.gz
docker save alpine:latest > /tmp/alpine_latest1.tar.gz
docker save c059bfaa849c >/tmp/al.tar.gz
#导入镜像
docker load -i /root/alpine_latest.tar.gz
docker load < /root/alpine_latest.tar.gz
#镜像改名
docker tag nginx:latest nginx:v1
docker tag c059bfaa849c alpine:latest
三.容器操作
选项 | 作用 |
---|---|
-i |
交互式 |
-t |
提供一个终端 |
-d |
放在后台运行 |
-p |
端口映射 |
-P |
随机端口映射 |
-v |
目录映射(挂载卷) |
--name |
指定容器名 |
--rm |
容器停止自动删除 |
-e |
指定环境变量 |
--link |
指定容器名字,与其他容器进行通信 |
# 查看正在运行的容器
docker ps
# 查看所有容器,包括退出的容器
docker ps -a
#查看正在运行的容器id
docker ps -q
# 启动容器(创建一个新的容器并启动)
docker run centos:7
#-it启动时提供交互式终端
docker run -it centos:7 /bin/bash
#启动一个容器,并指定名字
docker run --name web01 -d nginx:latest
原则:
1)一个容器尽量只做一件事
2)容器启动时,必须保证,容器内PID为1的进程可以将容器卡在前台
3)想要修改容器运行时的PID为1的进程,直接在启动容器时,最后加上命令即可
# 创建容器
docker create nginx:latest
# 运行一个容器(启动一个已存在但停止的容器)
docker start 93e7ee68c272
# 停止一个容器
docker stop 4341a094cbae
docker stop agitated_meninsky
# 必须先停容器再删除
docker rm f17f0cde2cb7
# 强制删除
docker rm -f f17f0cde2cb7
# 删除所有容器
docker rm -f $(docker ps -aq)
#连接容器
docker exec -it ccf55c399ac9 /bin/bash
#将文件拷贝到容器里面
docker cp 1.json 81635ad3d3eb:/
# 将文件文件从容器里拷贝出来
docker cp 81635ad3d3eb:/etc/hosts /opt/
# docker查看详细信息
docker inspect nginx:latest
docker inspect ee8488a009de
#查看容器日志信息
docker logs bc146805469f
#容器单向通信
#当使用link时,该容器启动后,会自动在/etc/hosts文件中,做域名解析
docker run --link container-name -it busybox /bin/sh
docker映射
#端口映射
docker run -p
-p 物理机上要开的端口:容器内部应用的端口
-p 物理机网卡IP:物理机上要开的端口:容器内部应用的端口
-p 物理机网卡IP::容器内部应用的端口
-p 81-85:81-85
docker run -p 物理机上要开的端口:容器内部应用的端口 -d nginx:latest
#目录映射,-v 宿主机目录:容器目录
docker run -p 80:80 -v /root/h5_games/:/usr/share/nginx/html/ -d nginx:latest
手动构建docker镜像
#1.启动基础镜像
docker run -it centos:7 /bin/bash
#2.操作完成后打包镜像
docker commit c069b9dc6e98 nginx_h5:v1
#3.启动镜像
docker run -p 80:80 -d nginx_h5:v1 /sbin/nginx -g "daemon off;"