本文将图文讲解如何在Mac、Windows、Linux上安装docker,最后会附上一些实用的操作命令。值此新春佳节来临之际,博主借此篇随便给大家拜个早年,祝大家身体健康,万事如意,心想事成!
之前的《初识Docker》我已经带大家总体认识docker了,现在大家对docker应该不陌生了吧,还不知道的自己点开链接再去了解一下。Mac和Windows要先到官网下载Docker Desktop,下载被强制要求要先登录docker hub账号:
下载完分别到对应的系统去安装:
Mac:
这里以macOS Catalina 10.15.2来讲解:
双击后把Docker.app拖到右边的Applications:
很快一下子就安装好了:
然后在启动台里面会多了个docker图标,直接点开它:
接着提示安装网络组件直接点OK输入密码授权安装:
启动的时候提示登录docker hub,可以登录刚刚下载时登录的账号也可以点x关闭掉:
然后打开终端输入docker version看到以下信息证明你已经安装成功了:
然后可以查看镜像(docker images)、搜索镜像(docker search hello)、拉镜像(docker pull hello-world),注意拉镜像有OFFICIAL [OK]的优先拉那个:
接着运行镜像(docker run hello-world)、查看容器(docker ps -a,加-a表示查看所有容器,去掉-a直接查询正在运行的容器)、删除容器(docker rm CONTAINER ID/IMAGE,你会发现我的ID并没有写全,因为那几个字符串已经可以作为唯一标识了)、删除镜像(docker rmi REPOSITORY/IMAGE ID):
最后退出docker直接点上面菜单栏docker图标下面的Quit Docker Desktop就行了:
Windows:
这里是以Windows 10企业英文64位版来介绍的,点Yes会提示在下载相关的安装包:
这里默认用Linux容器它提示后续也可以改动:
然后提示在解压文件中:
然后就在安装中:
然后点关闭并重启(注意会重启系统的哦,没保存的东西先保存一下):
其实这是我第一次在Windows上安装,重启系统后等了半天右下角图标一直显示starting,win+r输入cmd查看一下提示没启动服务端,最后提示Hyper-V虚拟机没运行:
在开始菜单右键点打应用和功能:
拉到下面点相关设置下面点应用和功能打开开开启或关闭功能:
然后把Hyper-V钩上安装完重启:
重启后docker就能正常启动了
其他操作参考上面Mac下的操作,需要注意的是物理机上的Windows还要进入BIOS开启虚拟化技术,具体百度一下。
Linux:
这里以CentOS 7.7版本的Linux来讲解:
先把yum 包更新到最新: yum -y update
然后安装需要的依赖包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的: yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源,并更新 yum 的包索引,国内网络可能不行可以用阿里的(yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo)但可能不是最新或者有可能被修改过出问题,如果网络没问题直接用官方的(yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo),然后查看所有仓库中所有docker版本:
接着安装docker:yum install docker-ce
启动(systemctl start docker,可以用systemctl enable docker设置开机自动启动docker)和查看docker版本信息:
查看docker状态信息(service docker status)、关闭(systemctl stop docker)、重启(systemctl restart docker):
卸载docker: yum -y remove docker-engine
yum remove docker-*
删除目录:
rm -rf /var/lib/docker
rm -rf /var/lib/docker-engine
最后附上常用的docker操作命令:
搜索镜像: docker search java
下载镜像: docker pull java
查看已下载镜像: docker images
删除指定镜像: docker rmi java
查看运行中的容器: docker ps
查看所有容器: docker ps -a
删除容器(只能删除已停止的容器,如需删除正在运行的容器,后面加-f参数): docker rm 7b739cc26085
运行容器docker run :
docker run -h 0.0.0.0 -p 3306:3306 –name mysql \
–privileged=true \
–hostname mysql \
-v /etc/localtime:/etc/localtime \
-v /opt/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
其中:
–privileged=true: root权限
-v用来挂载目录: -v 宿主机目录:容器目录
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=mysql: 为容器指定一个名称;
–hostname :指定hostname;
–net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–ip:指定IP
–add-host :指定往/etc/hosts添加的host
–link mysql:mysql \ 不要用这种,重启会有问题,官方推荐用network
–restart=always:重启docker自动运行运行容器
修改运行容器:docker container update 要增加的命令 容器名字,如重启docker自动运行mysql:docker container update –restart=always mysql
停止容器: docker stop f0b1c8ab3633
强制停止容器: docker kill mysql
启动已停止的容器: docker start mysql
查看容器所有信息: docker inspect mysql
查看容器日志: docker container logs mysql
查看容器里的进程: docker top f0b1c8ab3633
进入容器: docker exec -it f0b1c8ab3633 /bin/bash
重命名镜像: docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
容器IP的查方法:
docker inspect 容器ID或容器名 |grep ‘”IPAddress”‘
docker inspect –format='{{.NetworkSettings.IPAddress}}’ mysql
创建自定义的网桥网络:docker network create my-net
删除自定义的网桥网络: docker network rm my-net
将正在运行的容器连接到现有用户定义的桥接网络:docker network connect my-net my-nginx
将正在运行的容器从现有用户自定义桥接网络断开:docker network disconnect my-net my-nginx
将自己的镜像推到Docker hub上(先登录再改镜像名最后push):
docker login
docker tag ee0a246ecd34 xubingtao/gitlab-ce:latest
docker push xubingtao/gitlab-ce:latest
展开阅读全文
上一篇: MySQL报“Incorrect datetime value: ‘0000-00-00 00:00:00’ for column xxx at row 1”错误
下一篇:2005年乔布斯在斯坦福大学毕业典礼上的演讲Steve Jobs’ Commencement Address at Stanford University(中英文对照完整版)