linux安装docker
官网安装教程:https://docs.docker.com/engine/install/centos/
注:安装docker前的操作
关闭防火墙(CentOS7自带的)
~]# systemctl stop firewalld
再设置 (禁止开机启动)
~ ]# systemctl disable firewalld
关闭selinux :
~]# getenforce
启动docker
systemctl start docker
开机启动docker
systemctl enable docker
重启docker
systemctl restart docker
使用官方安装脚本自动安装
https://www.runoob.com/docker/centos-docker-install.html
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
卸载Docker Engine,CLI和Containerd软件包:
$ sudo yum remove docker-ce docker-ce-cli containerd.io
主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
$ sudo rm -rf /var/lib/docker
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 docker cp 3138a85e9eef:/opt/www/config.php /www/web 3138a85e9eef :容器 id /opt/www/config.php : 容器中的文件 /www/web 宿主机目录 示例说明: docker cp 主机文件路径 容器id或者容器名:容器路径 #主机中文件拷贝到容器中 docker cp 容器id或者容器名:容器路径 主机文件路径 #主机中文件拷贝到容器中
(查看docker信息)
docker info
(查看docker版本信息)
docker version
(创建一个docker容器)
docker run -it nginx
(查看docker容器)
docker ps
查看容器ip信息
docker inspect 运行容器的ID
访问容器
curl 容器ip地址
进入容器中
docker exec -it 容器ID bash docker exec -it 容器名称 bash (进入一个容器) exit (退出容器)
查看镜像中各层内容及大小
docker history <容器ID/容器NAME>
docker镜像默认存储在/var/lib/docker/
配置docker加速器
文档地址:https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
配置完加速地址后重启一下docker
systemctl restart docker
删除容器|镜像
docker rm -f 容器ID (删除一个容器)
停止所有容器,这样才能够删除其中的镜像:
docker stop $(docker ps -a -q)
如果想要删除所有容器:
docker rm $(docker ps -a -q)
联合命令
docker stop $(docker ps -q) & docker rm $(docker ps -aq) (先停止所有容器 再 删除所有的容器)
docker image rm 镜像名称 (删除镜像)
docker rmi hello-world (删除镜像[名称])
docker rmi -f images ID (删除指定image 镜像)
docker rmi $(docker images -q) (删除全部image 镜像)
查看镜像
docker images (查看所有镜像包括未运行的)
REPOSITORY 存储库名称
Tag 镜像的标签不写版本号码默认下载最新latest镜像
IMAGE ID 镜像ld
CREATED 创建时间
SIZE 大小
docker images -a
docker images -q ---只显示镜像的id
docker images --digests ---显示镜像的摘要信息
docker images --no-trunc ---显示完整镜像信息
保存一个镜像
docker image save centos > contos.tar
导入一个镜像
docker image load < contos.tar
docker ps (查看当前运行的容器)
docker container ps (查看当前运行的容器)
docker ps (默认只列出运行的容器)
docker ps -l (列出最新创建的容器)
docker ps -a (列出所有创建的容器,包括停止的和运行的)
docker inspect 容器名称 (列出容器详细信息)
搜索镜像文件
docker search mysql (搜索mysql镜像)
latest 表示为最新的镜像文件
docker run --name 容器名 -it -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:tag
#--name指定容器名,可自定义,不指定自动命名
#-i以交互模式运行容器
#-t分配一个伪终端,即命令行,通常-it组合来使用
#-p指定映射端口,讲主机端口映射到容器内的端口
#-d后台运行容器
#-v指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
dcoker ps 参数说明
docker ps -a -q
# docker ps 查看正在运行的容器
# -a 查看所有容器(运行中、示运行)
# -q 只查看容器的ID
查看docker容器运行日志
docker logs 容器名称 (NAMES)
示例:
运行一个容器
docker run --name ng -d -p 8080:808 nginx
--name ng (给容器起个名字为 “ng”)
-d (表示后台运行)
docker stop 容器id (停止运行一个容器)
docker inspect 容器id (查看容器ip等详细信息)
docker volume ls (查看数据卷)
docker volume create nginx_log (创建数据卷)
docker volume inspect nginx_log (查看数据卷详细信息)
制作镜像
dockerfile指令介绍
1.FROM指定父镜像:基于哪个镜像image构建指定基础镜像,必须为第一个命令
2. MAINTAINER:维护者
3.RUN:容器创建的时候执行一段命令构建镜像时执行的命令
4.ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
5.COPY功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
6.CMD构建容器后调用,也就是在容器启动时才进行调用。sh执行文件
7.ENV设置环境变量
8. EXPOSE:指定于外界交互的端口
9. VOLUME用于指定持久化目录
10. WORKDIR设置进入容器时的路径
docker build -f Dockerfile -t mydocker:1.0
把Dockerfile打包成了mydocker镜像,版本是1.0
docker run -d mydocker:1.0 ##运行该镜像
制作自己的Dockerfile镜像文件
#继承docker hub中的 centos镜像文件
FROM centos
#自己定制的镜像文件作者
MAINTAINER mydocker-cary2021
##配置环境变量MYPATH
ENV MYPATH /usr
##进入到容器中默认访问的目录/usr
WORKDIR $MYPATH
##安装下载vm
RUN yum -y install vim
##外部访问端口80
EXPOSE 80
###启动成功容器之后自动进入到容器中
CMD /bin/bash
最后保存成 Dockerfile 镜像文件
使用 docker commit 打包镜像示例(打包运行中的容器成为自己的镜像)
docker commit -m="myobj" -a="cary" 正在运行的容器id myobjsss:1.0
参数说明:
-m="提交的描述信息"
-a="作者"
myobjsss(要创建的镜像名称):1.0[标签名或者版本号]
#2.参数说明
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将该 dockerfile文件上传到 linux服务器中
使用 docker build -f Dockerfile -t mycs:1
Dockerfile----配置文件
mycs---打包镜像文件名称
1 tag 版本号码
启动自己的镜像名称
docker run -it mycs:1
https://docs.docker.com/compose/install/ 官网安装教程
https://github.com/docker/compose/releases 最新版本下载地址
curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
或者将下载好的文件移动至指定目录下
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-copose
#最后添加可执行权限
chmod +x /usr/local/bin/docker-compose
#查看安装版本
docker-compose version
#执行容器编排命令
docker-compose up -d
示例1:
保存文件名为:docker-compose.yml
version: "2.1"
services:
nginx:
image: nginx
ports:
- "80:80"
volumes:
- /www/web:/usr/share/nginx/html
- /www/nginx/conf:/etc/nginx/conf.d
- /www/logs:/var/log/nginx
networks:
- lnmp-network
php:
image: php:7.3-fpm
volumes:
- /www/web:/www
- /www/php-ini/php:/usr/local/etc/php
networks:
- lnmp-network
mysql:
image: mysql:5.7.34
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123
- MYSQL_DATABASE=cary2021
- MYSQL_USER=cary2021
- MYSQL_PASSWORD=123
networks:
- lnmp-network
redis:
image: redis
ports:
- "6379:6379"
volumes:
- /www/redis/conf.d:/etc/redis/redis.conf
- /www/redis/data:/data
environment:
- appendonly=yes
- requirepass=123
networks:
- lnmp-network
networks:
lnmp-network:
#执行容器编排命令
docker-compose up -d
发表评论 取消回复