Linux 安装 Docker

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。

其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中的应用之外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。

1、确保已经安装了 gcc

yum -y install gcc
yum -y install gcc-c++

2、安装 docker

yum install docker

3、启动 docker

systemctl start docker

设置开机自启动

systemctl enable docker

4、查看 docker 版本

docker version

5、测试运行 hello-world

docker run hello-world

由于本地没有 hello-world 这个镜像,所以会去下载一个 hello-world 镜像,并在容器内运行

8fd7462bea05479a87797af840eba9a9.png

6、测试运行 nginx
docker run -p 8080:80 -d docker.io/nginx

将 80 端口映射为 8080

测试,浏览器打开http://192.168.21.141:8080

bab9b1dd19214c9083e77746862c2df5.png
fef6b98f62c847748caba8fec726151b.png

7、卸载 docker

systemctl stop docker

yum -y remover docker

rm -rf /var/lib/docker

8、docker 的常用命令

查看本地的所有镜像

docker images

查找镜像(查的是远程仓库,默认的镜像仓库是https://hub.docker.com

docker search 镜像名

从远程仓库拉取镜像到本地

docker pull 镜像名:版本号  
docker pull tomcat:8.5  
若不指定版本号,默认latest

删除单个镜像:docker rmi -f 镜像 id
删除多个镜像:docker rmi -f 镜像 id1 镜像 id2
删除所有镜像:docker rmi -f $(docker images)
9、创建并运行容器

docker run [options] 镜像名:tag/镜像id
tag是镜像的版本号
options说明:
有些是一个减号,有些是两个减号
–name=“新容器名字” :为容器指定一个名称
-d : 后台运行容器,并返回容器id
-i : 以交互模式运行容器,通常和 -t 搭配使用
-t : 为容器重新分配一个伪输入终端
-P : 随机端口映射,大写的P
-p : 指定端口映射

10、列出当前所有的容器

docker ps [options]  
options说明:  
-a : 列出所有正在运行和未运行的容器  
-q : 列出所有正在运行的容器的id  
-aq : 列出所有正在运行和未运行的容器的id

11、停止容器

exit 退出并停止容器  
ctrl + p + q 退出,不停止容器

12、进入正在运行的容器,并以命令行交互

docker exec -id 容器id bash 重新开启一个终端进入容器  
docker attach 容器id 直接使用原来的终端进入容器

13、启动、停止、重启容器

docker start / stop / restart 容器id或容器名

14、强制停止容器

docker kill 容器id或容器名

15、删除容器

docker rm [options] 容器id或容器名称  
options说明:  
-f : 强制删除正在运行的或没有运行的容器

docker rm -f $( docker ps -aq )  
强制删除所有正在运行和没运行的容器

16、查看容器日志

先运行一个程序,在后台每隔两秒输出 hello-chengya
docker run -d centos /bin/sh -c “while true;do echo hello-chengya;sleep 2;done”
然后查看日志
docker logs -tf --tail 10 容器ID
-t 是加入时间戳
-f 跟随最新的日志打印
–tail 数字 显示最后多少条

17、查看容器内部细节

docker inspect 容器id或容器名

dad843ea68ba472ea4095fbe291bccd2.png

18、进入容器内拷贝文件到宿主机
docker cp 容器 ID(容器名称): 容器内文件或文件夹路径 宿主机的路径