docker 命令
docker
docker镜像实际由一层一层的文件系统组成,这种层级的文件系统就是unionFS(联合文件系统)
为什么分层?可以理解为程序的解耦,实现程序的复用
镜像最底层是bootfs(boot file system)引导文件系统和Linux一样,有boot加载器和内核,所以镜像都是简易版的Linux
容器则为rootfs,容器可以理解为继承了镜像的子类
- 服务器重启后,docker启动:systemctl daemon-reload
systemctl restart docker.service
image
- docker images 查看所有镜像 -q 只查看IMAGE ID ;-a所有的
- docker search --limit 5 redis 查询redis镜像,--limit 5 只查询五个出来,默认25个
- docker pull mysql 拉取mysql镜像,docker pull mysql:8.0指定版本,默认最新的 mysql:latest
- docker rmi 删除镜像,ID 或者名字,-f 强制删除
- docker image prune 删除所有的虚悬镜像(none none的镜像)
- docker system df 查询镜像、容器有多少。类似linux的df -h
- docker build -t certificate_api:1.0.0 . 构建dockerfile,注意最后有一个点
- docker tag ubuntu_yaohy:1.1 124.220.1.37:5000/1.2 给镜像打标签,通常再推送镜像到仓库前操作,仓库地址/版本号
- docker push 124.220.1.37:5000/1.2 推送镜像到仓库
container
启动容器:
- docker run -d -p 6378:6379 --name redis_yaohy_000 redis:6.2.6 -d后台运行,-p绑定端口
- docker run -it --name ubuntu-test ubuntu /bin/bash
- docker stop/start/restart <容器 ID> 启动已关闭的容器
- 按ctrl + p + q键,退出容器
- docker cp emqx:/opt/emqx/etc /home/emqx/ 复制容器文件到宿主机,如果一开始就用数据卷,会导致加载不了配置数据
重新进入启动容器的命令行:
- docker exec -it <容器 ID> /bin/bash
- docker attch (这个退出会停止容器)
查看容器日志:
- docker logs --tail 10 <容器 ID/名> 只查看10条
- docker logs -f <容器 ID/名> 实时打印
容器操作:
- docker container prune 可以清理掉所有处于终止状态的容器。
- docker cp <容器 ID>:/opt/data/test.txt /opt/ 复制容器中的文件到外面
- docker top <容器 ID> 类似linux的top
- docker export a7d31c762cfe > abcd.tar 导出容器为tar包
- cat abcd.tar | docker import - ubuntu_im 将导出容器,导入为镜像
- docker commit -a 'yaohy' -m 'install vim' a7d31c762cfe ubuntu_yaohy:1.0 将容器提交为镜像
- docker update --restart=always 容器ID 修改容器的启动参数
dockerfile
FROM java:8 MAINTAINER yaohy VOLUME /data/server/ ADD certificate-api.jar certificate-api-docker.jar RUN bash -c 'touch /certificate-api-docker.jar' ENTRYPOINT ["java","-jar","certificate-api-docker.jar","--spring.profiles.active","dev"] EXPOSE 8900
构建dockerfile,注意最后有一个点:docker build -t <image_name>:1.0.1 .
docker ubuntu 安装vim
apt-get update 更新包管理工具
apt-get install -y vim 安装vim
本地仓库 ,配置
http://127.0.0.1:5000/v2/_catalog
docker 默认不允许http的方式进行镜像推送,以下配置取消限制 异常为:http: server gave HTTP response to HTTPS client
vim /etc/docker/daemon.json
"insecure-registries":["124.220.xx.xxxx:5000"]
docker启动redis,使用数据卷和加载配置文件
docker run --name docker_node1
-v /data/docker/redis/node1/:/data
--privileged=true
-p 6381:6379
redis:6.2.6
redis-server /data/redis.conf
#配置文件中路径用全路径
比如:logfile /data/redis.log
#由于docker容器在启动时,需要任务在前台运行,否则会启动后立即退出,因此导致redis容器启动后立即退出问题
#否则异常:docker启动redis报错 oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
修改配置redis.conf:daemonize no
docker启动mysql
docker run -d --name mysql_master -p 3306:3306 --privileged=true
-e MYSQL_ROOT_PASSWORD=yaohy123456
-v /tmp/docker/mysql/log/master:/var/log/mysql
-v /tmp/docker/mysql/data/master:/var/lib/mysql
-v /tmp/docker/mysql/conf/master:/etc/mysql/my.cnf
mysql:8.0.27

浙公网安备 33010602011771号