一. docker的安装
- 环境
本机操作系统:
Windows10 64位
虚拟机软件: VMware14
虚拟机操作系统: CentOS-7 64位
- 升级所有包同时也升级软件和系统内核
yum -y update
注: 加-y
是不需要问,一直yes
yum update
和yum upgrade
啥区别??
- 下载docker需要的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 配置docker-ce(社区版)的下载地址
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 查看可下载的docker-ce信息,排序
yum list docker-ce --showduplicates | sort -r
- 下载最新版本的docker-ce
yum -y install docker
下载指定版本的docker-ce
例:yum -y install docker-ce-18.03.1.ce
- 启动docker
systemctl start docker
- 设置docker开机启动
systemctl enable docker
- 查看版本(包含客户端和server)
docker version
- 卸载docker
暂时还不想卸载…
二. 操作镜像
- 配置docker在中国的加速器(下面只是众多方法之一)
cd /etc/docker
- 新建daemon.json文件,并编辑:
vim daemon.json
- 将此json字符串放进去:
{ "registry-mirrors":["https://registry.docker-cn.com"]}
- 重启docker服务,使配置生效:
service docker restart
- 下载所需镜像到宿主机
- 列出镜像仓库中所需要的镜像列表(比如:包含java关键字)
docker search java
- 下载镜像
2.1 下载java镜像,指定版本为jdk8(如果不指定,默认为镜像仓库中的最新版,),
docker pull java:8
2.2 下载指定地址(比如自己的私有镜像仓库)的java镜像,指定版本为jdk8
docker pull XXXXXX.com/java:8
- 查询镜像
docker images
- 删除镜像(如果该镜像没有实例化的容器)
docker rmi imageID
涉及到的命令:
- 镜像仓库:
search
pull
- 本地镜像:
images
rmi
三. 操作容器
- 运行一个容器的两种方法
create + start
命令
先使用docker create
命令创建一个容器(如果没有本地镜像, 会自动从远程拉取最新版本)(带有各种参数)
然后使用容器生命周期基本命令(start, stop, restart
)的docker start
命令启动容器run
该命令直接启动一个容器(如果没有本地镜像, 会自动从远程拉取最新版本)(带有各种参数)- 如果出现
IPv4 forwarding is disabled. Networking will not work
这个提示信息, 解决办法如下:
3.1 修改/etc/sysctl.conf
文件, 添加net.ipv4.ip_forward=1
3.2 重启网络服务:systemctl restart network
- 例如运行一个Nginx容器
4.1 先创建一个Nginx容器, 然后运行
docker create --name myNginx01 -p 90:80 nginx
docker start myNginx01
4.2 直接运行一个Nginx容器docker run -d --name myNginx02 -p 91:80 nginx
- 查看容器
- 查看运行中的容器
docker ps
或者docker container ps
- 查看全部容器
docker ps -a
或者docker container ps -a
- 查看容器
详情
(很详细)
docker inspect 容器
- 查看容器正在运行的进程信息
docker top 容器
- 删除容器
- 先关闭容器
docker stop 容器
- 删除容器
docker rm 容器
- 容器生命周期的操作
- 启动容器
docker start 容器
- 停止容器
docker stop 容器
- 重启容器
docker restart 容器
- 与容器的交互
- 创建一个交互终端(就是进入容器)
docker exec -it 容器 /bin/bash
或者docker exec -it 容器 bash