Docker初体验(一)- docker安装运行篇

1. 在Linux上安装docker

公司内网虚拟机安装docker,操作系统是centOS,内核版本是3.10(3.10是最低要求)
如何查看内核版本:uname -r (uname -a 可以看到全部信息)
由于内网不能连接互联网,所以只能通过离线的方式安装docker
下载地址:https://download.docker.com/linux/static/stable/x86_64/

  1. 选择想要下载的安装包,后上传到服务器,可以通过rz -y 或者 sftp
  2. 在服务器上解压文件 tar -zxvf docker-18.06.1-ce.tgz
  3. 将解压后的文件移动到 /usr/bin目录下,执行命令 cp docker/* /usr/bin/
  4. 添加docker服务,添加文件 docker.service 在 /etc/systemd/system/文件夹下
    执行命令 vim /etc/systemd/system/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

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

# restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target



  1. 添加可执行权限,执行 chmod +x /etc/systemd/system/docker.service
  2. 启动docker
    systemctl daemon-reload
    systemctl start docker #启动dokcer
    systemctl enable docker.service #设置开机启动
  3. 检查是否正常
    systemctl status docker # 查看docker状态
    docker -v # 查看docker版本
    以上内容全部实践过,来源参考:https://www.jianshu.com/p/a46680b2b628

2. 导出导入dockr镜像

  1. 查看本机镜像
    docker images
    在这里插入图片描述

  2. 导出 save
    docker save 镜像id(IMAGE_ID) > kyc_counterparty.tar (注意<前后要有空格)
    导出后想办法把这个包弄到你本地

  3. 导入 load
    想办法把包从本地弄到目标机器上
    docker load < kyc_counterparty.tar (注意<前后要有空格)
    以上内容参见:https://www.hangge.com/blog/cache/detail_2411.html

3. 重新打tag

因为用镜像id打的包,导入后,repository 和 tag 都会变成none,所以要重新打tag
在这里插入图片描述
然后使用 tag命令重命名这个镜像的名称和版本号

使用命令:docker tag [image id] [name]:[版本]

例:docker tag b677d69bda1e mysql:5.7

docker tag 85ed407df896 kyc-counterparty:0.1.release

4. 运行

docker run -d kyc-counterparty #这里貌似只能用镜像名
可能会出现以下情况,表示没有lastst这个版本,这个是就要带着版本号运行

[root@10-7 ~]# docker run -d kyc-counterparty
Unable to find image ‘kyc-counterparty:latest’ locally

[root@10-7 ~]# docker run -d kyc-counterparty:0.1.x_release-220113
a45587ae2e758b55823118904dcf90bd7bbcb6542a044cc45c7548fbafb954ff

使用主机模式启动镜像,这种模式下容器暴露什么端口,就从主机的什么端口出去
docker run -d --net=host dockertest.xx.cn/otcsp/kyc-counterparty:0.1.x_release-220124
端口映射模式:
docker run -p 8080:80 ---- 表示,将主机的8080端口,映射到容器的80端口

多个端口映射:
docker run -p 8080:80 -p 8081:81
docker run -d -p 9090:8090 -p 9091:8091 dockertest.xx.cn/otcsp/kyc-counterparty:0.1.x_release-220124
挂载日志到宿主机目录里:
docker run -d -v /opt/kyc-counterparty-log:/opt/logs --net=host -e ACTIVE_PROFILE=tst dockertest.xx.cn/otcsp/kyc-counterparty:0.1.x_release-220214
–name=myapp,启动参数用这个,可以将容器命名为myapp,之后在查看 日志,停止容器的时候,都可以用myapp 替代 容器id
容器名唯一,如果想重复用之前的容器,可以用docker rm 容器名 删除,后再启动

5.启动参数

实战用到的是 -e ACTIVE_PROFILE=uat 这样的参数,然后在dockerfile中指定启动命令时
通过 java -jar xxx.jar --spring.active.profile=${ ACTIVE_PROFILE} 这样的方式,就可以获使用不同的环境来启动
更多的参考:https://blog.csdn.net/weixin_34362790/article/details/91415122

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值