(资料图)
# 启动容器 docker start 容器id# 停止容器 docker stop 容器id# 文件拷贝 先创建文件 mkdir:文件夹 vi vim touch:文件 # 容器的文件copy到宿主机上(不是在容器内部操作) docker cp 容器名称:容器目录 需要拷贝的文件或目录 docker cp 20fd8:/home/lqz.txt /home/lqz.txt # 宿主机的文件copy到容器中 docker cp 需要拷贝的文件或目录 容器名称:容器目录 docker cp ./lqz.txt 20fd894a3f20:/home/lqz.txt# 查看容器IP地址 docker inspect 容器名称 # 查看容器的详细描述 很多 docker inspect --format="{{.NetworkSettings.IPAddress}}" 容器名称(容器ID) # 在多个容器之间是可以ping通的 # centos:172.17.0.3 # mysql:172.17.0.2# 删除容器(删除已停止的容器) docker rm 容器id docker rm `docker ps -a -q` # 无状态的服务 myslq reids uwsgi+django
docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7# 做目录映射:data文件,配置文件# 创建文件夹mkdir /home/mysqlmkdir /home/mysql/conf.dmkdir /home/mysql/data/vim /home/mysql/my.cnf[client]default-character-set=utf8[mysqld]user=mysqlcharacter-set-server=utf8default_authentication_plugin=mysql_native_passwordsecure_file_priv=/var/lib/mysqlexpire_logs_days=7sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIONmax_connections=1000docker run -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # 创建库,创建表,插入数据# 关闭容器,删除容器,mysql的容器没了,但是数据在宿主机上放着# 再运行起一个容器,做好目录映射,数据都回来了
# 拉取redis镜像docker pull redismkdir /root/datavim /root/redis.confbind 0.0.0.0daemonize NOprotected-mode norequirepass 123456# 运行docker run -id -p 6379:6379 --name redis -v /root/redis.conf:/etc/redis/redis.conf -v /root/data:/data redis redis-server /etc/redis/redis.conf # 远程链接redis操作redis.conf 文件 删了再重新搞 通过该文件跑在前台 一直运行
# 拉取nginx镜像docker pull nginx# run起容器# docker run -id --name nginx -p 80:80 nginx # /usr/share/nginx/htmldocker run -id --name nginx -p 80:80 -v /root/html:/usr/share/nginx/html nginx# 以后只需要修改宿主机的/root/html 路径,看到页面就是修改后的
# 容器保存为镜像 运行一个centos容器 docker run -id --name centos_vim centos:7 在容器中装vim docker exec -it 容器ID号 /bin/bash yum install vim -y 把容器做成镜像(centos+vim) docker commit centos_vim centos_vim_image 把centos_vim 容器删除 docker rm centos_vim 基于新构建的镜像,运行成容器 docker run -id --name centos_vim centos_vim_image:latest 进入到容器中,查看,软件都在 docker exec -it 容器ID号 /bin/bash# 镜像备份和恢复 docker save -o centos_vim_image.tar centos_vim_image 删除容器,删除镜像 把备份的镜像恢复 docker load -i centos_vim_image.tar
# 镜像从哪里来的? 1 远程仓库拉取的 docker pull 2 用容器做成的镜像 docker commit 3 把备份的恢复 docker load 4 使用Dockerfile来构建# 什么是Dockerfile Dockerfile是由一系列命令和参数构成的脚本文件,这些命令应用于基础镜像并最终创建一个新的镜像 # Dockerfile的命令 FROM 基础镜像 #基于哪个基础镜像来构建 MAINTAINER lqz # 声明镜像的创建者 ENV key value # 设置环境变量 (可以写多条) RUN command #是Dockerfile的核心部分(可以写多条) ADD source_dir/file dest_dir/file #将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 COPY source_dir/file dest_dir/file # 和ADD相似,但是如果有压缩文件并不能解压 WORKDIR path_dir # 设置工作目录,运行起这个容器,来到的路径就是这个路径 # 构建一个带vim的centos镜像vim DockerfileFROM centos:7MAINTAINER lqzENV name lqzRUN yum install vim -yRUN mkdir /lqzRUN touch /lqz/ss.pyRUN echo "print(1)" >/lqz/ss.pyCOPY /root/redis.conf /lqz/redis.confWORKDIR /lqz# 基于dockerfile构建镜像docker build -t="centos_lqz_vim" .# 基于这个镜像运行容器 docker run -id --name xx centos_lqz_vim# 进入到容器docker exec -it xx /bin/bash# 验证vim,和文件夹,文件是否存在
Dockerfile构建django启动的镜像 使用Dockerfile构建一个运行django程序的镜像django 的helloworld --》压缩包基于Python3.8 构建一个能够运行你这个程序的镜像FROM python:3.8MAINTAINER lqzRUN pip install django==3.2.2ADD 压缩包 WORKDIR /lqz docker run -id -p 8080:8080 --name xx djago python manage.py runserver 0.0.0.0:8080
X 关闭
Copyright © 2015-2023 今日净水网版权所有 备案号:沪ICP备2023005074号-40 联系邮箱:5 85 59 73 @qq.com