docker
安装
curl -sSL https://get.daocloud.io/docker | sh
修改镜像
修改/etc/docker/daemon.json(没有新建)
{
“registry-mirrors”: [“https://almtd3fa.mirror.aliyuncs.com”]
}
开启docker
#开启
systemctl start docker
##设置开机自启
systemctl enable docker
下载镜像
https://hub.daocloud.io/:国内仓库
复制命令:拉取
docker pull daocloud.io/library/rabbitmq:3.6.9-management
注:
这个网站容器都太老了。我们可以配置阿里云镜像加速;
输入你的加速器地址。
改名
#docker tag [镜像id,可写前几位,能唯一区分镜像即可] 镜像名:版本号
docker tag b8 tomcat:8.5
虽然改名,但是还是同一个镜像
删除
docker rmi resp:tag
首次运行容器
参数说明:
- -i: 交互式操作。
- -t: 终端。
要退出终端,直接输入 exit:
-d
:后台运行容器
-it
:启动并进入容器
-itd
:后台运行并链接进容器shell
-p
:主机端口:容器端口 ,映射端口;如果本地没有
docker run -d -p 主机端口:容器端口 --name 名字 容器id
-v
: 容器与宿主机磁盘目录映射 ,下面以linux和windows为例,运行nginx
linux的docker:
docker run --name myNginx -v /data/html:/usr/share/nginx/html -p 8888:80 -d nginx
解释:运行容器(取名为myNginx),将本地/data/html挂在容器中路径/usr/share/nginx/html(nginx默认html路径),并且访问本地localhost:8888将访问到容器的80端口(nginx默认端口),后台启动nginx(省略写法,完整为:nginx:latest,也可以使用镜像唯一id)
windows的docker:
docker run --name myNginx -v /G/Dockerfile/nginx/html:/usr/share/nginx/html -p 8888:80 -d nginx
解释:将本地G:\Dockerfile\nginx\html目录映射到nginx默认的html页面存放处,其他与linux下操作同.
这里我把一个简单的html项目放本地:
进入容器
docker exec -it 容器id bash
文件拷贝到容器
docker cp 文件名 容器id:目录
这里直接用git bash操作了,因为git bash(git由linux之父编写)能使用linux命令;
$ docker pull mongo:4.4.2
启动:
登录:无用户密码
拷贝本地的Mybatis帮助文档.cnm到mongo容器内的根路径下:
容器文件拷贝本地
docker cp 容器id:容器内文件路径 宿主机目的路径
因为上次操作把中文名文档拷贝到docker里,这里我对mongo容器回炉重造了容器新的id为:299bd…;
这里将容器的home目录拷贝到控制台当前打开目录;
容器生命周期管理
docker ps : 列出容器
语法
docker ps [OPTIONS]
OPTIONS说明:
-
-a : 显示所有的容器,包括未运行的。
-
-f : 根据条件过滤显示的内容。
-
–format : 指定返回值的模板文件。
-
-l : 显示最近创建的容器。
-
-n : 列出最近创建的n个容器。
-
–no-trunc : 不截断输出。
-
-q : 静默模式,只显示容器编号。
-
-s : 显示总的文件大小。
docker start 容器名|id :启动一个或多个已经被停止的容器
docker stop容器名|id :停止一个运行中的容器
docker restart 容器名|id :重启容器
docker pause 容器名:暂停容器中所有的进程。
docker unpause 容器名:恢复容器中所有的进程。
docker create : 创建一个新的容器但不启动它 --name 名字 容器名:版本
docker rm : 删除一个或多个容器。
语法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
- -f : 通过 SIGKILL 信号强制删除一个运行中的容器。
- -l : 移除容器间的网络连接,而非容器本身。
- -v : 删除与容器关联的卷。
docker镜像构建
构建镜像就是在原始镜像(linux操作系统上添加操作);例如
创建新文件:mkdir Dockerfile
进入文件:cd Dockerfile
新建Dockerfile文件,写入下方代码touch Dockerfile
FROM nginx
RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
在nginx的镜像上每一个RUN镜像就多一层,所有尽量避免多层;
构建镜像:docker build -t nginx:v3 .
然后就多了个镜像;
上传镜像(类似git)
docker push