1. 删除已安装的docker
yum remove docker docker-common docker-selinux docker-engine
2. 安装工具
yum install -y yum-utils
3. 设置镜像仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4. 修改repos.d
vi /etc/yum.repos.d/docker-ce.repo
#在最开头添加下面的内容
[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0
# 把oracle-linux-ol7.repo注释掉
mv /etc/yum.repos.d/oracle-linux-ol7.repo /etc/yum.repos.d/oracle-linux-ol7.repo.bak
不这样处理会报如下错误:
--> Finished Dependency Resolution
Error: Package: 3:docker-ce-20.10.8-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2:2.74
Error: Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable)
Requires: fuse-overlayfs >= 0.7
Error: Package: docker-ce-rootless-extras-20.10.8-3.el7.x86_64 (docker-ce-stable)
Requires: slirp4netns >= 0.4
Error: Package: containerd.io-1.4.9-3.1.el7.x86_64 (docker-ce-stable)
5. 更新yum索引
yum makecache fast
6. 安装Docker
yum -y install gcc gcc-c++
yum -y install slirp4netns fuse-overlayfs container-selinux
yum install docker-ce docker-ce-cli containerd.io
7. 启动
systemctl start docker
# 设置为开启自动启动
systemctl enable docker
8. 验证
# 查看docker清单
docker ps
9. 测试(拉取一个oracle11g镜像作测试)
# 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 查看现有docker镜像(上面步骤下载的镜像)
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g latest 3fa112fd3642 6 years ago 6.85GB
# 创建容器(后台运行)
docker run -d -p 1521:1521 \
--name oracle11g \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
# 查看容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2dad7ba846ad registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 24 seconds ago Up 10 seconds 0.0.0.0:1521->1521/tcp, :::1521->1521/tcp oracle11g
# 进入容器
docker exec -it 2dad7ba846ad /bin/bash
# 刷新容器内环境变量
[oracle@2dad7ba846ad /]$ source ~/.bash_profile
[oracle@2dad7ba846ad /]$ sqlplus / as sysdba
--修改sys默认密码
SQL> alter user sys identified by Cloud_4u;
# 查看监听状态(确保启动状态正常)
[oracle@2dad7ba846ad /]$ lsnrctl status
# 测试监听,tns
cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/
vi tnsnames.ora
# 添加如下内容
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host00)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
:wq(保存退出)
# 测试通过tns连接数据库
[oracle@2dad7ba846ad admin]$ sqlplus sys/Cloud_4u@HELOWIN as sysdba
10. 提交新镜像
接上述例子,我们把修改后的容器提交成新的镜像并下载
docker commit 2dad7ba846ad helowin:oracle11g
docker images
# 可以看到新的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
helowin oracle11g dd9b668b03a3 6 seconds ago 6.86GB
# 将上述镜像导出
docker save -o helowin_oracle11g.tar helowin:oracle11g
附件:
安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
或
# sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --versio
sudo pip install docker-compose