你能在浪费时间中获得乐趣,就不是浪费时间。 ---- 罗素
Linux(CentOS、Ubuntu):
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
MacOS:
前往网站:https://docs.docker.com/desktop/mac/install 进行安装
Windows:
前往网站:https://hub.docker.com/editions/community/docker-ce-desktop-windows 进行安装
安装完成后执行docker -v
,当显示版本后表示安装成功。
避免国外镜像拉取时出现卡顿的情况,可以将镜像换成国内仓库。可以在/etc/docker/docker.json或安装好的Docker软件中找到设置中的daemon.json
配置。
{
"registry-mirrors":["https://reg-mirror.qiniu.com/"]
}
镜像网址:
配置完成后执行docker info
命令,看到Registry Mirrors表示配置成功。
当本地没有的镜像的话通过docker pull
命令去仓库拉取镜像。
docker pull ubuntu
通过docker create
创建容器。
docker create --name myUbuntu ubuntu
--name myUbuntu
表示给创建的容器起别名,此时的容器还没有启动。
docker run -it ubuntu /bin/bash
此时已经进入到创建的ubuntu中,可以执行Liunx的ll
命令查看目录,使用exit
退出。
这里的-it参数中,i 表示开发容器的标准输入(STDIN),t 则表示告诉 docker,为容器创建一个命令行终端。
对于已经通过create
创建的容器,也可以通过docker start name
来启动。
docker start myredis
此时--name xxx
的作用就出来,因为docker start
后面可以通过和生成的ID来进行启动,由于ID是docker自动生成,所以可以通过定义别名来进行更加便捷的启动。
拉取镜像、创建容器、启动容器这些步骤可以通过docker run
命令来进行一起执行。
docker run --name nginx001 -d -p 8080:80 nginx
通过run可以把拉取创建启动同时执行,一步到位。如果没有镜像,会去拉取,存在的话就不会拉取了。
-d 表示容器在后台运行,-p 表示将容器的 80 端口映射到宿主机的 8080 端口。
通过docker stop
可以停止容器。
docker stop myredis
docker ps
docker ps -a
docker ps -l
docker ps -n=number
docker rm myUbuntu
也可以把name换成id来进行删除,如果是删除正在运行的容器,需要加上-f
指令。
restart参数提供了特殊情况下容器的重启策略。
创建新容器可以加上restart参数来设置策略,如果已经创建好的容器,执行docker container update --restart=always myredis
来设置重启策略。
通过docker inspect
命令可以查看已创建容器的信息。
docker inspect myredis
如果觉得信息过多,可以通过输入format参数来过滤信息,获取自己只想看到的信息。
//查看容器ID
docker inspect -f={{.ID}} myredis
//对于JSON中的数组,则会返回map格式
docker inspect -f={{.NetworkSettings.Networks}} myredis
//查看容器IP地址
docker inspect -f={{.NetworkSettings.Networks.bridge.IPAddress}} myredis
Docker中的查看容器的进程和Linux的一样,通过docker top
命令进行查看,但是要保证查看的进程处于运行状态。
docker top myredis
对于后台型的容器,通过docker logs
可以查看日志内容。
docker logs myredis
如果想查看实时的日志而不是历史日志,可以使用-f
参数,--tail = number
表示日志的输出行数,-t
表示日志输出时间。
通过docker exec
可以进到容器里执行命令。
docker exec -it myubuntu bash
docker attach
和docker exec
拥有相同的效果,不同的是使用 docker exec
即使用户从终端退出,容器也不会停止运行,而使用 docker attach
时,如果用户从终端退出,则容器会停止运行,所以推荐使用docker exec
。
容器导出为我们提供了可以像其他系统一样可以拷贝的功能,通过docker export
命令可以导出本地容器。
docker export myredis > myredis.tar
通过docker import
命令可以导出本地容器。
cat myredis.tar | docker import - jerryRedis