1.docker的作用
解决了软件的运行环境和配置问题
2.docker 下载官网
docker官网:http://www.docker.com
3.docker的安装
Install Docker Engine on CentOS
(1)cat /etc/redhat-release 确定你是CentOS7及以上版本
(2)卸载旧版本
(3)yum -y install gcc yum -y install gcc-c++
(4)安装软件包
yum install -y yum-utils
(5)设置docker-ce的阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
(6)docker 的ce
yum -y install docker-ce docker-ce-cli containerd.io
(7)systemctl start docker
(8) docker version
(9)卸载
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
(10) 配置阿里云镜像加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"]
}
EOF
重启docker systemctl restart docker
4.docker启动安装命令
5.镜像命令
(1)docker images
-a :列出本地所有的镜像(含历史映像层)
-q :只显示镜像ID。
(2)docker search --limit 5 redis
--limit : 只列出N个镜像,默认25个
(3)下载镜像
docker pull 镜像名字[:TAG]
没有TAG就是最新版
(4)查看镜像/容器/数据卷所占的空间 docker system df
(5)删除镜像
docker rmi 某个XXX镜像名字ID
6.容器命令
(1)容器启动
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
--name="容器新名字" 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
(2)列举当前运行的容器
docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号。
(3)交互方式进入容器后退出
1.exit
run进去容器,exit退出,容器停止
2.ctrl+p+q
run进去容器,ctrl+p+q退出,容器不停止
(5)启动已停止运行的容器
docker start 容器ID或者容器名
(6)重启容器
docker restart 容器ID或者容器名
(7)停止容器
docker stop 容器ID或者容器名
(8)强制停止容器
docker kill 容器ID或容器名
(9) 删除已停止的容器
docker rm 容器ID
(10)启动守护式容器(后台服务器)
#使用镜像centos:latest以后台模式启动一个容器
docker run -d centos
问题:然后docker ps -a 进行查看, 会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,容器内部就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
(11)查看容器日志
docker logs 容器ID
(12)查看容器内运行的进程
docker top 容器ID
(13)查看容器内部细节
docker inspect 容器ID
(14)进入正在运行的容器并以命令行交互
1.docker exec -it 容器ID bashShell
2.dokcer attach 容器ID
不同点
attach 直接进入容器启动命令的终端,不会启动新的进程
用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程
用exit退出,不会导致容器的停止。
(15)从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
(16)容器与镜像
export 导出容器的内容留作为一个tar归档文件[对应import命令]
import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
{其实就是更改一个容器的内容,转换成一个镜像,而镜像是只读文件}