先了解几个概念:
linux最小化安装时没有netstat命令 可以使用yum -y install net-tools安装
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
docker run hello-world
因为没有hello-world 镜像所以首次运行时会自动下载一个镜像然后运行
为了加速方位可以vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
docker images或者docker image ls
docker官方镜像站点https://hub.docker.com/
使用docker命令查找镜像 例如docker search nginx
docker run 镜像名 一般要加一些参数 以nginx为例
docker run -p 80:80 -d --name nginx_web nginx
注意:镜像名指的是仓库名称:标签名 如果只写仓库名默认是最新版本镜像 即 镜像名:latest
运行镜像会创建一个容器 后续可以使用docker stop 或者docker start 容器名 停止或者启动容器 例如
docker stop nginx_web
docker start nginx_web
docker ps
docker ps -a
从宿主机向容器拷贝文件 格式:docker cp 宿主机文件名 容器名:路径
从容器向宿主机拷贝文件 格式:docker cp 容器名:路径/文件名 宿主机路径/文件名
docker cp index.html nginx8080:/usr/share/nginx/html
docker cp nginx8080:/usr/share/nginx/html/index.html ./
docker rm nginx_web
从容器创建镜像 docker commit -m "备注信息" 容器名称 镜像名称
例如docker commit -m "nginx的首页被改动" nginx nginx_new
备注:如果使用了数据卷挂载(-v) 则在宿主机目录中的更改不会影响容器内的文件内容,创建新镜像时仍然按原始容器内的文件内容创建
删除镜像 docker rmi 镜像名称 或者 docker image rm 镜像名称
提示:如果通过该镜像创建了容器则需要先删除容器 如果删除容器时容器在运行则需要先停止
查看docker系统占用的所有空间 docker system df
进入容器内查看docker exec -it nginx /bin/bash
docker run -p 8080:80 -d --name nginx8080 -v /home/wwwroot/default:/usr/share/nginx/html nginx
其中 /home/wwwroot/default 是宿主机目录 /usr/share/nginx/html 是容器内的目录
/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
/usr/share/nginx/html/
/usr/local/nginx81/ 映射到 /etc/nginx
/home/wwwroot/default81 映射到 /usr/share/nginx/html/
docker cp nginx8080:/etc/nginx /usr/local/nginx81/
docker run -p 81:80 -d --name nginx81 \
-v /usr/local/nginx81/nginx:/etc/nginx \
-v /home/wwwroot/default81:/usr/share/nginx/html/ \
nginx