docker yum安装

这篇具有很好参考价值的文章主要介绍了docker yum安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

docker简介: 

什么是沙箱机制:

docker的组成部分:

Docker 架构:

docker run 参数

常用参数说明:

docker部署

环境准备

卸载旧版本

安装依赖

下载阿里云仓库

安装docker

开启docker

安装docker-compose

基本操作

下载服务的镜像

导出镜像

删除镜像

导入镜像

启动服务并将端口映射到本机端口

查看容器IP和路由

docker cp

docker创建mysql容器

docker创建redis容器

docker创建tomcat容器

docker迁移与备份

docker commit

docker save和docker export的区别

docker export/import


docker简介: 

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

什么是沙箱机制:

Sandbox(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。

docker的组成部分:

DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器

Docker 架构:

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

docker yum安装

docker run 参数

常用参数说明:

[root@localhost ~]# docker run --help

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Create and run a new container from an image
Aliases:
  docker container run, docker run

# OPTIONS 说明
	-d, --detach=false, 指定容器运行于前台还是后台,默认为false
    -i, --interactive=false, 打开STDIN,用于控制台交互
    -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false
    -u, --user="", 指定容器的用户
    -a, --attach=[], 登录容器(必须是以docker run -d启动的容器)
    -w, --workdir="", 指定容器的工作目录
    -c, --cpu-shares=0, 设置容器CPU权重,在CPU共享场景使用
    -e, --env=[], 指定环境变量,容器中可以使用该环境变量
    -m, --memory="", 指定容器的内存上限
    -P, --publish-all=false, 指定容器暴露的端口
    -p, --publish=[], 指定容器暴露的端口
        有四种模式
        ip:hostPort:containerPort
	    ip::containerPort
	    hostPort:containerPort
	    containerPort
    -h, --hostname="", 指定容器的主机名
    -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录

# IMAGE 说明
要运行镜像的REPOSITORY:TAG或IMAGE ID

# COMMAND说明
需要在容器内执行的命令
      
# ARG 说明
指的是一些其他参数

docker部署

环境准备

卸载旧版本

yum remove -y docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-selinux \
  docker-engine-selinux \
  docker-engine


安装依赖

yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

下载阿里云仓库

wget http://mirrors.aliyun.com/repo/Centos-7.repo

wget  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y epel-release

mv *.repo /etc/yum.repo.d/

安装docker

yum install -y docker-ce

开启docker

systemctl start docker.service 
systemctl enable docker.service 
systemctl status  docker.service 
docker version

安装docker-compose

github的地址下载太慢了,国内可以使用http://get.daocloud.io/#install-compose网站上面的地址。

首先下载docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose


#授权
chmod +x /usr/local/bin/docker-compose

#最后查看版本
docker-compose -v

基本操作

下载服务的镜像

#docker下载Apache镜像
docker pull httpd

#docker下载Tomcat镜像
docker pull tomcat

导出镜像

#docker的镜像下载好后可以导出到本地,方便以后使用
#格式:docker save -o 导出后的名称 要导出的镜像
docker save -o centos_httpd httpd:latest 
docker save -o centos_tomcat tomcat:latest 

删除镜像

#删除镜像
#格式docker rmi 镜像ID/镜像REPOSITORY:TAG

docker rmi httpd:latest 
docker rmi tomcat:latest 

导入镜像

#把刚刚导出的镜像重新导入
格式:docker load < 名称

docker load < centos_httpd 
docker load < centos_tomcat 

启动服务并将端口映射到本机端口

docker run -itd -p 主机端口:docker端口 --name=名称 --privileged(超级特权) 镜像
 
例如
docker run -itd -p 80:80 --name=web01 --privileged httpd:latest

查看容器IP和路由

docker inspect --format='{{.NetworkSettings.IPAddress}}' ps中的ID号/name
 
or

iptables -t nat -L -n --line-numbers

docker cp

#从本地复制到docker容器内
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
docker cp [选项] 本地路径 容器ID:文件路径 

例如:
docker cp /root/anaconda-ks.cfg db765f5a5883:/opt/anaconda-ks.cfg

[root@localhost ~]# docker cp /root/anaconda-ks.cfg db765f5a5883:/opt
Preparing to copy...
Copying to container - 3.072kB
Successfully copied 3.072kB to db765f5a5883:/opt


#从docker容器内复制到本地
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [选项] 容器ID:文件路径 本地路径

例如
docker cp db765f5a5883:/opt/anaconda-ks.cfg /root/anaconda-ks1.cfg

[root@localhost ~]# docker cp db765f5a5883:/opt/anaconda-ks.cfg /root/anaconda-ks1.cfg
Preparing to copy...
Copying from container - 512B
Copying from container - 1.861kB
Copying from container - 2.048kB
Copying from container - 2.56kB
Successfully copied 3.072kB to /root/anaconda-ks1.cfg

docker创建mysql容器

#首先下载mysql镜像
docker pull mysql

#创建容器并开启
docker run -itd -p 3306:3306 --name=mysql --privileged -e MYSQL_ROOT_PASSWORD=123456  mysql:latest

#效果,执行完的数字每个人都不一样
[root@localhost ~]# docker run -itd -p 3306:3306 --name=mysql --privileged -e MYSQL_ROOT_PASSWORD=123456  mysql:latest
97d97364eb9b2fe980034271c48c52dff3cecd0d38bd515b5c1340d6fc9df830

#docker ps -a查看
docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                                  NAMES
97d97364eb9b   mysql:latest   "docker-entrypoint.s…"   4 seconds ago       Up 3 seconds       0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

#本地查看,有3306端口即可
[root@localhost ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      2014/docker-proxy   
tcp        0      0 0.0.0.0:82              0.0.0.0:*               LISTEN      2524/docker-proxy   
tcp        0      0 0.0.0.0:83              0.0.0.0:*               LISTEN      3350/docker-proxy   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1021/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1301/master         
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      4943/docker-proxy   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      708/rpcbind         
tcp        0      0 192.168.100.10:22       192.168.100.254:52178   ESTABLISHED 1846/sshd: root@pts 
tcp        0      0 192.168.100.10:22       192.168.100.254:57579   ESTABLISHED 1691/sshd: root@pts 
tcp6       0      0 :::81                   :::*                    LISTEN      2018/docker-proxy   
tcp6       0      0 :::82                   :::*                    LISTEN      2528/docker-proxy   
tcp6       0      0 :::83                   :::*                    LISTEN      3354/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      1021/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1301/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      4947/docker-proxy   
tcp6       0      0 :::111                  :::*                    LISTEN      708/rpcbind   

#进入mysql容器查看版本
docker exec -it 97d9 mysql -uroot -p123456

select version();

docker yum安装

docker创建redis容器

#首先下载redis镜像
docker pull redis

#将其他redis服务器的配置文件scp到docker服务器上
#修改配置文件相应内容

#创建redis容器
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /root/redis.conf:/etc/redis/redis.conf  -d redis:latest redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 000415

[root@localhost ~]# docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name redis -v /root/redis.conf:/etc/redis/redis.conf  -d redis:latest redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass 000415
d66321472bdaf87a13f985cd271bf181ec4dc6eb8e2bf6f20c3b817584d29c53

#查看
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED             STATUS             PORTS                                                  NAMES
d66321472bda   redis:latest   "docker-entrypoint.s…"   8 seconds ago       Up 8 seconds       0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis

#查看版本
docker exec -it  redis  redis-server -v

[root@localhost ~]# docker exec -it  redis  redis-server -v
Redis server v=7.0.10 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=abb4a9fa55bb4507

docker创建tomcat容器

#下载tomcat镜像
docker pull tomcat


#启动
[root@localhost ~]# docker run -itd -p 8080:8080 --name=tomcat --privileged tomcat:latest 
f1a5ba6ce1c25a559edcdbef73db80ed63e9cc4b806a8a417eee15a647bf023c

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE           COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
f1a5ba6ce1c2   tomcat:latest   "catalina.sh run"         17 seconds ago   Up 16 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp              tomcat

#进入tomcat
docker exec -it f1a5ba6ce1c2 /bin/bash

[root@localhost ~]# docker exec -it f1a5ba6ce1c2 /bin/bash
root@f1a5ba6ce1c2:/usr/local/tomcat# 

#将webapps.dist/中内容复制到webapps,如果不复制的话,访问时会报错
root@f1a5ba6ce1c2:/usr/local/tomcat# ls
bin           conf             lib      logs            NOTICE     RELEASE-NOTES  temp     webapps.dist
BUILDING.txt  CONTRIBUTING.md  LICENSE  native-jni-lib  README.md  RUNNING.txt    webapps  work
root@f1a5ba6ce1c2:/usr/local/tomcat# ls webapps
root@f1a5ba6ce1c2:/usr/local/tomcat# ls webapps.dist/
docs  examples  host-manager  manager  ROOT
root@f1a5ba6ce1c2:/usr/local/tomcat# cp -r webapps.dist/* webapps/


docker迁移与备份

docker commit

#编写一个index.html文件
my name is zmy !!!

#将他复制到nginx容器
docker cp index.html 2c6e485a671c:/usr/share/nginx/html/index.html

#根据nginx容器创建一个新的镜像
docker commit 2c6e485a671c my_nginx

#启动这个新的容器,将端口映射到81号端口
docker run -itd -p 81:80 my_nginx:latest 

#访问对比
[root@localhost ~]# curl 192.168.100.10
my name is lzz !!!
[root@localhost ~]# curl 192.168.100.10:81
my name is lzz !!!

结论
直接将一个运行的容器,直接打包成一个镜像,这个镜像里包含那个容器的所有配置

docker save和docker export的区别

1.docker save保存的是镜像,docker export保存的是容器

2.docker save会保留镜像所有的历史记录,docker export不会,即没有commit历史

3.docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;

4.docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。文章来源地址https://www.toymoban.com/news/detail-495332.html

docker export/import

#语法
docker export [OPTIONS] CONTAINER

Options:
  -o, --output string   Write to a file, instead of STDOUT    #将输入内容写到文件。

例如:
#将redis打包
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE           COMMAND                   CREATED             STATUS             PORTS                                       NAMES
db765f5a5883   ubuntu:22.10    "/bin/bash"               15 minutes ago      Up 15 minutes                                                  myubuntu
a250e3354a34   redis:7.0.10    "docker-entrypoint.s…"   26 minutes ago      Up 26 minutes      0.0.0.0:6379->6379/tcp, :::6379->6379/tcp   myredis
b0815fd9ba92   python:3.11.3   "python3"                 About an hour ago   Up About an hour                                               mypython
[root@localhost ~]# docker export -o redis-`date +%Y%m%d`.tar a250e3354a34
[root@localhost ~]# ls
anaconda-ks.cfg  redis-20230411.tar
#语法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
docker import [选项] 文件名 要起的镜像名:标签

Options:
  -c, --change list       Apply Dockerfile instruction to the created image    #应用docker 指令创建镜像;
  -m, --message string    Set commit message for imported image                #提交时的说明文字;
      --platform string   Set platform if server is multi-platform capable


例如:
#将刚刚保存的redis 导入docker
[root@localhost ~]# docker import redis-20230411.tar redis:import
sha256:e7a57daf9a697080d3abe725b0367ddbd566d6d7a72d2d42d16f461f87b777ec
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
redis        import    e7a57daf9a69   17 seconds ago   113MB
python       3.11.3    148bdd2c547f   5 days ago       921MB
redis        7.0.10    31f08b90668e   2 weeks ago      117MB
ubuntu       22.10     558d44db75c8   4 weeks ago      70.3MB

到了这里,关于docker yum安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yum安装docker指定版本

    以安装20.10.8-3.el7版本docker为例子 配置yum源库 查看yum源支持的docker版本 docker执行安装命令 exec-opts:修改docker Cgroup Driver 为systemtd,是k8s需要,默认是cgroupfs insecure-registries:支持http方式推送镜像 registry-mirrors:添加镜像加速器,这里添加的是阿里云个人加速器地址,也可以添

    2024年02月15日
    浏览(36)
  • CentOS通过yum安装Docker

    要安装Docker Engine,你需要以下CentOS版本中的一个维护版本: CentOS 7 CentOS 8 (stream) CentOS 9 (stream) centos-extras 仓库必须被启用。这个仓库默认是启用的,但如果你已经禁用了它,你需要重新启用它。 旧版本的Docker以 docker 或 docker-engine 为名。在尝试安装新版本之前,请卸载任何此

    2024年02月07日
    浏览(46)
  • linux联网yum安装docker

    5.1 搜索镜像     5.2 拉取镜像     5.3 运行镜像(启动Portainer容器) -it  输出容器命令行的内容 即容器的自身的程序输出在控制台 有点类似前台运行 -d  和it相反  隐藏后台运行 -p  端口映射 9000::9000 外部(宿主机)端口:镜像里面运行的端口 将宿主机9000端口映射到镜像里面的

    2024年02月20日
    浏览(29)
  • nginx简介与安装配置,目录结构和配置文件介绍,配置nginx的service管理

    目录 一.nginx简介 1.简介 2.特性 二.nginx安装 1.rpm包方式 (1)下载扩展源 (2)安装扩展rpm包,nginx -V查看配置参数,后面源码安装时要用到 (3)默认的配置文件位置和html存放位置 2.源码方式 (1)建议提前下好所需要的部分包 (2)下载tar.gz包 (3)建议将包解压到/usr/local

    2024年02月04日
    浏览(43)
  • centos7更新yum安装docker-ce使用阿里源

    centos7更新yum安装docker-ce使用阿里源 centos7更新yum安装docker-ce使用阿里源240209版 Centos7的yum使用国内源阿里源163源等提高下载速度

    2024年02月20日
    浏览(51)
  • yum源以及rpm安装包配置、yum源冲突、yum-config-manager命令找不到、curl: (35)、docker镜像重复拉取失败

    有的时候按照教程走,可能会设置yum源,设置后用yum下载东西很有可能或造成冲突 1. 删除冲突软件 2. 更换到以前的 yum 源 这里更推荐 更换到以前的 yum源,删除冲突软件首先要排除(极其浪费时间),然后删除冲突软件(删除之前最好确认这个软件是非必须的,否则可能最后要重

    2024年02月10日
    浏览(41)
  • PostgreSQL 16数据库的yum、编译、docker三种方式安装——筑梦之路

    随手一记:生成密码的密文sha256加密

    2024年02月07日
    浏览(53)
  • CentOS 8配置 yum/dnf 镜像源 | 安装 Docker | DockerCompose | SimpleDocker 及其相关操作

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker组成部分: 镜像(Image) 仓库(Repository) 容

    2024年02月03日
    浏览(53)
  • 信创麒麟操作系统卸载docker,并分别用在线、yum、rpm三种方式安装信创的docker

    备注:操作前建议对机器打快照备份,或者备份好数据,如未使用,第一次部署的情况可直接操作 一、卸载DataEase自带的docker 二、安装信创系统的docker 1、联通外网 2、未通网,有yum源 3、未联通外网,无yum源通过rpm安装部署docker 1)确认当前系统的版本 如图: 2)根据系统在

    2024年02月13日
    浏览(123)
  • 【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(107)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包