先进行服务器初始化
配置静态
vim /etc/sysconfig/network-scripts/ifcfg-ens33
主机重命名-docker
hostnamectl set-hostname docker
su
关闭firewalld并禁止firewalld开机启动
[root@docker yum.repos.d]# systemctl stop firewalld
[root@docker yum.repos.d]# systemctl disable firewalld
### 禁用Selinux
[root@docker yum.repos.d]# vim /etc/selinux/config
### 更新yum仓库配置文件
(YUM 是一个在 Fedora、CentOS、RHEL 等系统中广泛使用的包管理工具,它允许用户从指定的服务器自动下载、安装、更新和删除软件包)
[root@docker yum.repos.d]# rm -rf CentOS-*
[root@docker yum.repos.d]# curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
[root@docker yum.repos.d]# ls
Centos-7.repo
安装docker
安装yum相关的工具,下载docker-ce.repo文件
[root@docker yum.repos.d]# yum install yum-utils -y
下载安装docker的仓库文件
[root@docker yum.repos.d]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@docker yum.repos.d]# ls
Centos-7.repo docker-ce.repo
生成安装docker的缓存
[root@docker yum.repos.d]# yum makecache fast
安装docker
[root@docker yum.repos.d]# yum install docker-ce -y
启动docker并设置开启启动
[root@docker yum.repos.d]# systemctl start docker
[root@docker yum.repos.d]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@docker yum.repos.d]# ps aux|grep docker
root 11699 0.5 5.5 1488552 54888 ? Ssl 11:41 0:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 11862 0.0 0.0 112824 980 pts/0 S+ 11:41 0:00 grep --color=auto docker
容器的状态
UP(运行)、Exited(退出)、Created(创建)
只要docker重启,会导致所有正在运行的容器进入Exited状态
操作
查看正在运行的容器
docker ps
先创建一个容器,然后启动容器
docker run -d -p 80:80 --name=sc-nginx-1 nginx
-d 容器进程在后台运行 daemon
-p 将容器发布出去,让外面的机器可以访问 publish —》端口映射–》宿主机和容器的端口之间的一个映射 map 80:80
前面的80是宿主机的端口,必须唯一
后面的80是容器的端口,可以一样
–name 指定容器的名字,必须唯一 nginx 使用的镜像文件的名字
查看容器详细信息
docker inspect sc-nginx-1
创建一个容器
docker create -p 81:80 --name=sc-nginx-2 nginx
启动容器
docker start sc-nginx-2
停止容器
docker stop sc-nginx-2
删除容器
docker rm sc-nginx-2
删除镜像(需要先停止并删除启动的容器)
docker rmi mysql:5.7.41
从Registry中拉取镜像
docker pull
将一个镜像改名为另外一个名字
docker tag 0018a8d83892 mysql:5.7.41
导出镜像
docker save -o mysql-5-7-41.tar mysql:5.7.41
启动MySQL容器
docker run -d -p 3307:3306 --name sc-mysql-1 -e MYSQL_ROOT_PASSWORD=‘sc@123456’ mysql:5.7.41
-e MYSQL_ROOT_PASSWORD='sc@123456' 给容器传递一个环境变量 environment 给MySQL的root用户设置密码
进入容器内部
docker exec -it sc-mysql-1 bash
常用命令
命令 | 作用 | 示例 |
---|---|---|
docker -h | 查看帮助 | docker -h |
docker -v | 查看版本 | docker -v |
docker info | 查看容器信息 | docker info |
docker images | 查看你的docker里有那些镜像 | docker images |
docker run | 运行镜像到容器,不接版本号,默认是latest | docker run -d -p 80:80 --name=sc-nginx-1 nginx |
docker create | 创建 | docker create -p 8080:80 --name=sc-nginx-2 nginx |
docker start 容器名或容器ID | 启动容器 | docker start sc-mysql-1 |
docker restart | 重新启动容器 | docker restart 41e6791569fa |
docker stop | 停止运行的容器 | docker stop 41e6791569fa |
docker ps | 查看正在运行的docker容器 | docker ps |
docker ps -a | 查看所有容器,包括关闭的 | docker ps -a |
docker images | 查看本地镜像文件 | docker images |
docker load | 本地导入镜像 | docker load -i nginx.tar |
docker save | 导出镜像到本地 | docker save -o mysql-5-7-41.tar mysql:5.7.41 |
docker exec -it 容器名 shell命令 | 进入容器内部,在已运行的容器执行命令 | docker exec -it sc-mysql-1 bash |
docker login | 登录远程镜像仓库 | docker login --username=fengkezhen registry.cn-hangzhou.aliyuncs.com |
docker pull | 拉取远程镜像仓库 | docker pull registry.cn-hangzhou.aliyuncs.com/fengdy/mysql:5.7.41 |
docker tag | 将一个镜像改名为另外一个名字 | docker tag 0018a8d83892 mysql:5.7.41 |
docker rm 容器ID或(容器名称) | 删除已停止的容器 | docker rm 41e6791569fa |
docker rmi 镜像名称:版本号 | 删除本地某个镜像(需要先停止并删除启动的容器) | docker rmi mysql:5.7.41 |
docker cp | 容器和主机之间复制文件 | docker cp sc-nginx-1:/usr/share/nginx/html/index.html . |
docker inspect 容器名 | 查看容器内的细节 | docker inspect sc-nginx-1 |
docker logs 容器名 | (docker logs -f -t --tail 数字 容器id)查看容器日志 | docker logs sc-nginx-1 |
docker stats (容器名) | 查看容器状态 | docker stats sc-nginx-1 |
docker top 容器名 | 显示容器的进程 | docker top sc-nginx-1 |