Docker安装命令
sudo systemctl enable docker
docker开机自启动sudo service docker start
启动docker,注意头一次运行会用问题,就是linux防火墙的问题,按照这个博主的做法改一下就好了https://blog.csdn.net/weixin_39370315/article/details/132094077sudo service docker status
检查docker运行的状态root环境下 /etc/docker
创建配置文件daemon.json,配置文件内容为
{
"registry-mirrors":[
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"exec-opts":["native.cgroupdriver=systemd"],
"log-driver":"json-file",
"log-opts":{
"max-size":"100m"
},
"storage-driver":"overlay2"
}
退出登录,输入sudo kill -SIGHUP $(pidof dockerd)
注意,不确定是否通过这个指令能让配置文件修改成功,但是一定要重启docker
sudo service docker restart
然后通过docker info
检查配置文件,查看是否修改配置文件成功
5.sudo docker pull 镜像
拉取镜像
docker images
查看docker镜像
6.构建Dockerfile文件
docker build -t yang:v1 .
-t后面跟构建镜像的名称,"."代表当前目录即Dockerfile存在的目录
#Dockerfile实例
FROM nginx:latest
MAINTAINER yangbin_010801@163.com
##install tools
RUN apt update && apt install -y curl cron iputils-ping telnet && apt clean all
## copy file to ngnix workdir
ADD html/index.html /usr/share/nginx/html
##
EXPOSE 80
7.docker rmi #镜像名称#
删除镜像
docker tag yang:v1 yang/mynginx:v1
复制镜像,并起一个别名
创建容器
docker run --name mynginx-test -it --rm -p9080:80 yang/mynginx:v1
name后跟容器名字 -it创建后进入shell --rm停止后删除 -p容器的80端口暴露给宿主机的9080端口 最后加镜像名字
**注意:**我在创建容器时出现了问题,问题说
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: systemd not running on this host, cannot use systemd cgroups manager: unknown.
解决办法:修改配置文件的内容
{
"exec-opts": ["native.cgroupdriver=cgroupfs"]
}
进入容器
docker exec -it mynginx-test bash
-it后面跟容器名字或者id
停止容器
docker stop mynginx-test
后跟容器名后者id
控制台直接运行
docker run -d yang/mynginx:v1
直接在控制台运行,不用新开一个窗口
清空容器
必须清空容器才能重新建一个相同名称的容器
docker ps -a
查看已停止的容器
docker rm 容器名称或者id
删除容器
8.挂载目录
docker run -it --rm --name mynginx-volume -v /home/yanngbin/docker-demos:/usr/share/nginx/html:rw -p9081:80 yang/mynginx:v1
通过volume的方式去挂载,将本地volume文件夹的路径映射到nginx容器当中
-it也可以用-d