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

前言

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-compose版本何选?可以在centos 中运行
uname -s -m
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

踩坑提醒: 如果是在docker容器中安装docker,请务必启动容器时加上如下参数
--privileged=true 且启动命令为/usr/sbin/init两个缺一不可,否则会安装失败

安装验证

[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
  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值