docker容器学习-------内容本人在linux服务器上操作过,现整理完整的流程记录一下学习过程
1、安装最新版的yum:
(1)检查系统自带的yum包
rpm -qa |grep yum(2)删除rpm包
rpm -qa|grep yum|xargs rpm -e --nodeps(3)去http://mirrors.163.com/centos/7/os/x86_64/Packages/下载如下rpm文件
yum-3.4.3-163.el7.centos.noarch.rpm
yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
python-inotify-0.9.4-4.el7.noarch.rpm(4)用rpm命令安装
rpm -ivh --force --nodeps yum-3.4.3-163.el7.centos.noarch.rpm
rpm -ivh --force --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh --force --nodeps yum-plugin-fastestmirror-1.1.31-52.el7.noarch.rpm
rpm -ivh --force --nodeps python-inotify-0.9.4-4.el7.noarch.rpm(5)修改来源文件
cd /etc/yum.repos.d备份CentOS-Base.repo文件为CentOS-Base.repo_bak
mv CentOS-Base.repo CentOS-Base.repo_bak下载对应版本repo文件,我下载的是Centos-7.repo,修改Centos-7.repo名称为CentOS-Base.repo
wget http://mirrors.aliyun.com/repo
mv Centos-7.repo CentOS-Base.repo(5)清除系统默认配置的yum源
yum clean all(7)运行makecache生成缓存
yum makecache(8)更新yum文件
yum update2、docker容器安装:
(1)查看是否安装了docker
yum list installed | grep docker(2)安装docker
yum -y install docker(3)docker启动/停止/重启/查看状态
systemtcl start docker
systemtcl stop docker
systemtcl restart docker
systemtcl status docker3、docker离线安装
(1)下载安装包
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz(2)解压
tar -zxvf docker-18.06.3-ce.tgz(3)将解压的docker文件夹下的文件复制到/usr/bin/路径下
cp docker/* /usr/bin/(4)在/etc/systemd/system/目录下新增docker.service文件,这样可以将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 --selinux-enabled=false --insecure-registry=127.0.0.1
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
#####################################################上面文件内容中的--insecure-registry=127.0.0.1改成私服的ip
(5)给docker.service文件添加执行权限
chmod +x docker.service(6)重新加载配置文件(每次修改docker.service文件时都需要重新加载)
systemctl daemon-reload (7)修改或新增 /etc/docker/daemon.json,文件内容如下:
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}(8)启动,查看状态
systemctl start docker
systemctl status docker(9)设置开机启动
systemctl enable docker.service4、测试jar包在docker中运行
(1)查看docker客户端和服务段是否都开启
docker version(2)拉取hello-world镜像测试
docker pull hello-world(3)查看是否存在hello-world镜像
docker images(4)运行hello-world
docker run hello-world --cmd窗口运行
docker run -d hello-world --后台运行(5)查看容器日志
docker logs [OPTIONS] CONTAINERID
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)例如:docker logs --since 30m 0eef327f000a
(6)查看containerId
docker ps -a5、项目打包成镜像在docker中运行
(1)项目正常打成jar包,创建Dockerfile文件,内容如下
FROM java:8
ADD DockerDemo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8084
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]参数详解:
FROM:表示基础镜像,即运行环境;
ADD:拷贝文件并且重命名;
EXPOSE:并不是真正的发布端口,这个只是容器部署人员与建立image的人员之间的交流,即建立image的人员告诉容器布署人员容器应该映射哪个端口给外界;
ENTRYPOINT:容器启动时运行的命令,相当于我们在命令行中输入java -jar xxxx.jar,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT;(2)服务器上创建docker文件夹,将jar包和Dockerfile移至该文件夹,运行命令:
docker build -t docker-demo . (docker-demo为镜像名称,想取啥名就取啥名)(3)查看是否构建成一个image
docker images(4)运行镜像
docker run -p 8084:8084 -d docker-demo
-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号
-d表示后台运行 (5)查看运行的镜像
docker ps -a(6)查看容器日志
docker logs [OPTIONS] CONTAINERID
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)例如:docker logs --since 30m 0eef327f000a
其他命令:
删除容器,需要停止容器
docker ps -a 命令查询containerid根据containerid停止容器
docker stop containerid(也可只输入containerid的前几位)删除容器
docker rm containerid(也可只输入containerid的前几位)删除镜像(前提是该镜像的容器都已停止或者删除)
docker images查看imageid
docker rmi imageid(需要全部ID名)
jar包上传到本地的docker打包服务器
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:java 技术分享演讲ppt
下一篇:python if构造列表
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
IDEA打包jar包上传docker服务器
如何基于IDEA完成项目打包Docker镜像并部署服务器。
docker 服务器 容器 jar包 -
maven 打包上传到私服
maven打包上传到私服
maven xml apache