当前位置: 代码网 > 服务器>服务器>Linux > Docker Docker-compose 安装及使用 持续更新

Docker Docker-compose 安装及使用 持续更新

2024年07月31日 Linux 我要评论
docker安装与使用Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

前言

docker安装与使用

什么是docker

docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 linux或windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker与虚拟机之间的区别

虚拟机:虚拟机是通过hypervisor(虚拟机管理系统,常见的有vmware workstation、virtualbox),虚拟出网卡、cpu、内存等虚拟硬件,再在其上建立虚拟机,每个虚拟机是个独立的操作系统,拥有自己的系统内核。

容器:容器是利用namespace将文件系统、进程、网络、设备等资源进行隔离,利用cgroup对权限、cpu资源进行限制,最终让容器之间互不影响,容器无法影响宿主机。

docker 安装

docker在线安装请参考官方文档

https://docs.docker.com/desktop/install/linux-install/

docker及docker-compose离线安装

安装版本: docker 20.10.14, docker-compose v2.24.7
安装环境: centos-7.9.2009
下载好docker及docker-compose相应版本,放到centos系统目录/opt/dockerinstall,目录如下:

[root@1b51ea5627f0 docker]# pwd
/opt/docker
[root@1b51ea5627f0 docker]# ll
total 122808
-rwxr-xr-x 1 root root 64273875 35 18:23 docker-20.10.14.tgz
-rwxr-xr-x 1 root root 61466114 39 00:02 docker-compose-linux-x86_64

添加服务文件docker.service

touch docker.service

写入以下内容

[unit]
description=docker application container engine
documentation=https://docs.docker.com
after=network-online.target firewalld.service
wants=network-online.target

[service]
type=notify
execstart=/usr/bin/dockerd
execreload=/bin/kill -s hup $mainpid
limitnofile=65535
limitnproc=65535
timeoutstartsec=0
delegate=yes
killmode=process
restart=on-failure
startlimitburst=3
startlimitinterval=60s

[install]
wantedby=multi-user.target

编写安装脚本install.sh,内容如下

#!/bin/sh
echo '解压tar包...'
tar -zxvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
rm -rf docker
echo '删除docker解压文件成功...'
cp docker-compose-`uname -s|awk '{print tolower($0)}'`-`uname -m` /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
echo 'docker-compose 安装成功...'

给install.sh添加执行权限

chmod +x install.sh

至此 /opt/docker目录内容如下

[root@1b51ea5627f0 docker]# pwd
/opt/docker
[root@1b51ea5627f0 docker]# ll
total 122808
-rwxr-xr-x 1 root root 64273875 35 18:23 docker-20.10.14.tgz
-rwxr-xr-x 1 root root 61466114 39 00:02 docker-compose-linux-x86_64
-rwxr-xr-x 1 root root      437 41 17:39 docker.service
-rwxr-xr-x 1 root root      743 42 10:24 install.sh

执行install.sh一键安装docker及docker-compose

sh install.sh docker-20.10.14.tgz

安装验证

[root@d5ddd9635623 docker]# docker -v
docker version 20.10.14, build a224086
[root@d5ddd9635623 docker]# docker-compose -v
docker compose version v2.24.7

docker使用

常用命令

#指令	说明
docker images	#查看已下载的镜像
docker rmi 镜像名称:标签名	#删除已下载的镜像
docker search 镜像	#从官方仓库(hub.docker.com)查找镜像
docker pull 镜像名称:标签名	#标签名默认是 latest,代表最新版本。
docker run	#创建容器
docker ps	#列出运行中的容器(运行中)
docker ps -a	#列出所有的容器(运行、未运行)
docker rm 容器名称/id	#删除停止的容器
docker rm -f 容器名称/id	#删除运行中的容器
docker start 容器名称/id	#启动容器
docker stop 容器名称/id	#停止容器
docker restart 容器名称/id	#重启容器
docker exec [-it] 容器名称/id 命令	#执行容器中的指令 eg:docker exec -it nginx /bin/bash
docker logs -f [--tail number] 容器名称/id #查看容器日志 eg:docker logs -f --tail 50 nginx
docker save -o  镜像文件名字.tar 镜像名字:版本 [其他镜像名字:版本...] #导出镜像到文件 在不能联网的环境有奇效
docker load -i 镜像文件名字.tar #从存档文件中读取镜像

docker run 常用参数

docker run --name 容器名称 -d -p 主机端口:容器内端口 -e 环境变量 -v localpath:dockerpath --link 其它容器名:容器中别名 镜像名称:标签名
-d: 后台运行容器,并返回容器id;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="xxxx": 为容器指定一个名称;
-e username="xxxx": 设置环境变量;
-m :设置容器使用内存最大值;
--link=[]: 添加链接到另一个容器;当要访问其它容器中的内容时,需要先链接才可以使用
-p: 开放一个端口或一组端口
-v: 映射容器的卷
--privileged=true: 为该容器提供扩展权限
基本命令使用
启动容器: 启动oracle 12c 企业版,容器名为 orcl12c
docker run --name orcl12c  --privileged=true -p 1521:1521 -e oracle_sid="orcl" -e oracle_pdb="test" -e oracle_pwd="test@main" -e oracle_edition="standard" -e oracle_characterset="zhs16gbk" -v d:\dockervolumes\oracle12c\data:/opt/oracle/oradata -v d:\dockervolumes\oracle12c\opt:/data -d registry.cn-hangzhou.aliyuncs.com/snake-group/oracle-e:12c

查看日志

docker logs -f --tail 50 orcl12c

进入容器交互模式,类似ssh到 linux 服务器

docker exec -it orcl12c /bin/bash
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com