文章目录
前提知识
- 强制,熟悉Linux命令和相关背景知识
- 建议,Git相关的知识 git pull
下载地址:http://www.atguigu.com/download.shtml#docker
在下CetOS下查看内核和版本
[x_salt@bogon ~]$ uname -r
3.10.0-1062.12.1.el7.x86_64
[x_salt@bogon ~]$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
Docker基础
Docker镜像加速
我们一般在DockerHub拉取镜像有时会遇到困难,此时我们就需要配置加速器。这里我使用国内加速器服务,阿里云:https://<你的ID>.mirror.aliyuncs.com
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon
配置文件/etc/docker/daemon.json
来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://nw5iareo.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker info ///显示 Docker 系统信息
一、Docker的使用
1、Docker Hello World
在docker中可以在容器中运行应用程序,我们使用docker run
命令来实现在一个容器中运行一个应用程序。
docker run ubuntu /bin/echo "Hello world" //Docker 以 ubuntu镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
2、运行交互式的容器
我们通过使用-t -i
,来让docker运行的容器实现“对话”的功能:
docker run -i -t ubuntu /bin/bash
//参数说明:
-t 在新容器内制定一个伪终端或终端
-i 允许你的容器内的标准输入进行交互
cat /proc/version //查看当前系统的版本信息
ls //查看容器下的文件列表
通过exit或者ctrl+D来退出容器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13yN9iuZ-1623163753342)(https://note.youdao.com/yws/api/personal/file/2394E7BEFB764405AFB082934354072B?method=download&shareKey=f890c55153028bd9d60524f9a95554cd)]
3、启动容器(后台模式)
可以使用下面命令来创建一个以进程方式运行的容器:
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" //运行之后我们并没有看到输入“Hello world”,而看到的是容器的ID
docker ps //查看确定容器是否在运行
//查看容器内的标准输出
docker logs 2b1b7a428627 //docker logs 容器ID
docker logs amazing_cori //docker logs 自动分配的容器名称
//停止容器
docker stop <容器 ID>
docker stop <自动分配的容器名称>
//重启容器
docker restart <容器 ID>
docker restart <自动分配的容器名称>
//删除一个容器
docker rm -f <容器 ID>
//以清理掉所有处于终止状态的容器。
docker container prune
二、容器使用
- 获取镜像
docker pull ubuntu
- 启动容器
docker run -it ubuntu /bin/bash
- 后台运行
docker run -itd --name ubuntu-test ubuntu /bin/bash //设置容器名为ubuntu-test
- 启动已经停止的容器
docker ps -a //查看所有容器
docker start <容器 ID> //启动一个已停止的容器
- 停止一个容器
//停止容器
docker stop <容器 ID>
docker stop <自动分配的容器名称>
//重启容器
docker restart <容器 ID>
docker restart <自动分配的容器名称>
- 进入后台容器
docker ps //查看运行的容器
docker attach <运行容器 ID> or <运行容器的容器名>
docker exec -it <运行容器 ID> /bin/bash //使用exit或者ctrl +D退出,后台容器不会退出
- 导出和导入容器
docker export 1e560fca3906 > ubuntu.tar //导出容器
cat /root/ubuntu.tar |docker import - test/ubuntu:v1 //导入容器
- 查看端口的映射情况
docker port <容器ID>
docker port <自动分配的容器名称>
//注意:如果你这里使用exit或者ctrl +D的话,后台运行的容器就会直接退出。推荐大家使用docker exec
命令,因为此退出容器终端,不会导致容器的停止。
三、Docker镜像使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
- 列出镜像列表
在root用户下,我们可以通过使用docker images
来列出本地主机上的镜像。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Gi5bfUj-1623163753357)(https://note.youdao.com/yws/api/personal/file/AA1D360E53344577BD3516E400D8A513?method=download&shareKey=001559875f7df3e7160281b8c4aaaa58)]
四、Docker实例
1、Docker安装Ubuntu
docker pull ubuntu //拉取最新版的 Ubuntu 镜像
docker images //查看本地镜像
docker run -itd --name ubuntu-test ubuntu
docker exec -it ubuntu-test /bin/bash
docker ps //查看容器的运行信息
2、Docker安装CentOS
docker pull centos:centos7 //拉取指定版本的 CentOS 镜像,这里我们安装指定版本为例(centos7):
docker images //查看本地镜像
docker run -itd --name centos-test centos:centos7 //运行容器
docker exec -it centos-test /bin/bash
docker ps //查看容器的运行信息
3、Docker安装MySQL
docker search mysql //查看可用的 MySQL 版本
docker pull mysql:latest 拉取 MySQL 镜像
docker images //查看本地镜像
#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
//参数说明:
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
docker ps //查看容器的运行信息
#进入容器
docker exec -it mysql /bin/bash
#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#添加远程登录用户
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';
五、docker常用命令
- 1、
docker version
//显示Docker
版本信息。 - 2、
docker info
//显示Docker
系统信息,包括镜像和容器数 - 3、
docker --help
- 4、
docker cp
//用于容器与主机之间的数据拷贝。以下的操作都是在主机的命令行来进行操作的。 docker cp /root/share 65b912bb0b2a:/root/www/ //将主机/root/share目录拷贝到容器65b912bb0b2a:/root/www/目录下 docker cp /root/share 65b912bb0b2a:/root/test //将主机/root/share目录拷贝到容器65b912bb0b2a中,目录重新命令为test下 docker cp 65b912bb0b2a:/root/www/ /root/hello/ //将容器65b912bb0b2a的,目录www拷贝到主机的/root/hello/目录下
- 5、
docker images
//列出本地镜像。 - 6、
docker rmi
//删除本地一个或多少镜像。 - 7、
docker pull
// 从镜像仓库中拉取或者更新指定镜像