1、vm安装centos7
正常iso镜像安装,最小单元安装完成后没有网络连接通过如下命令启动网络:
cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
修改ONBOOT=no 为 ONBOOT=yes
2、安装Docker
- 2.1卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 2.2 下载安装包
sudo yum install -y yum-utils
- 2.3 设置仓库阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 2.4 更新yum软包索引
yum makecache fast
- 2.5 安装docker
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 2.6 运行docker
systemctl start docker
- 2.7 查看docker是否安装成功
docker version
- 2.8 运行docker镜像
docker run hello-world
- 2.9 查看镜像
docker images
-
- 2.10 搜索镜像
# 要搜索的镜像名,如mysql
docker search mysql
- 2.11 查看镜像所有id
docker images -aq
- 2.12 下载镜像
# 指定版本下载,不指定版本默认下载latest
docker pull 镜像名:版本号
- 2.13 删除镜像
# 删除指定镜像
docker rmi -f 镜像id
# 删除全部镜像
docker rmi -f $(docker images -aq)
3、容器命令
- 3.1 安装容器
[root@bogon ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
- 3.2 启动并进入容器
[root@bogon ~]# docker run -it centos /bin/bash
[root@9f47544b9243 /]# ^C
[root@9f47544b9243 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
# 退出容器
exit
- 3.3 列出所有的运行中的容器
docker ps # 列出当前正在运行的容器
docker ps -a # 列出当前正在运行的容器,带出历史运行过的容器
- 3.4 退出容器
exit # 直接退出容器
ctrl + p + q 容器不停止退出
- 3.5 删除容器
docker rm 容器id # 删除指定的容器,不能删除运行中的容器,如果强制删除 rm -f
docker rm -f $(docker ps -aq) # 删除所有的容器
- 3.6 启动和停止容器
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器
- 3.7 查看容器元数据
docker inspect 容器id
- 3.8 进入当前正在运行的容器
# 方式一
docker exec -it 容器id /bin/bash
进入容器后开启一个新的终端,可以在里面操作
# 方式二
docker attach 容器id
进入容器正在执行的终端,不会启动新的进程
- 3.9 从容器内拷贝文件
docker cp 容器id:容器内路径 目的地主机路径
docker cp 86b800f750d1:/home/demo.html /home
- 3.10 指令总结
指令 | 说明 |
---|---|
attach | #当前shell下attach连接指定运行镜像 |
build | #通过Dockerfile定制镜像 |
commit | #提交当前容器为新的镜像 |
cp | #从容器中拷贝指定文件或者目录到宿主机中 |
create | #创建一个新的容器,同run 但不启动容器 |
diff | #查看docker容器变化 |
events | #从docker服务获取容器实时事件 |
exec | #在已存在的容器上运行命令 |
export | #导出容器的内容流作为一个tar归档文件(对应import) |
history | #展示一个镜像形成历史 |
rename | #重命名容器 |
restart | #重启运行的容器 |
rm | #移除一个或者多个容器 |
rmi | #移除一个或多个镜像(无容器使用该镜像才可以删除,否则需要删除相关容器才可以继续或者-f强制删除) |
run | #创建一个新的容器并运行一个命令 |
save | #保存一个镜像为一个tar包(对应load) |
search | #在dockerhub中搜索镜像 |
start | #启动容器 |
stats | #统计容器使用资源 |
stop | #停止容器 |
tag | #给源中镜像打标签 |
top | #查看容器中运行的进程信息 |
unpause | #取消暂停容器 |
version | #查看容器版本号 |
wait | #截取容器停止时的退出状态值 |
4、 docker部署nginx
- 4.1 下载nginx镜像
docker pull nginx
- 4.2 运行nginx容器
# -d 后台运行
# --name 给容器命名
# -p 宿主机端口,映射容器内部端口
docker run -d --name nginx01 -p 3344:80 nginx
- 4.3 进入容器
docker exec -it naginx[id] /bin/bash
5、commit镜像
- 5.1 启动一个容器,并且自定义内部内容
- 5.2
# -a 作者名字
# -m 镜像信息
docker commit -a="zzz" -m="add webapps app" 容器id 自定义的镜像名称:自定义的版本号(注意中间的:)