docker安装、常用命令、容器服务启动脚本

1、docker服务安装:docker_install.sh

#!/bin/sh
echo '解压tar包...'
tar -xvf $1

echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/

echo '将docker.service 移到/etc/systemd/system/ 目录...'

vim 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

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安装成功...'

2、docker常用命令:

docker -v

docker commmit 提交一个容器为镜像
docker commit -m "my mysql" -a "caoyu" 9d mymysql:caoyu
commit:告诉docker服务端以某个容器作为镜像
-m:--comment添加注释
-a:作者
9d:容器id简写,唯一
mymysql:仓库及镜像名称
caoyu:镜像版本号

查看构建后的镜像信息:
docker inspect mymysql:caoyu

Dockerfile文件和docker build命令构建镜像
docker build -t caoyu:v1 .
.:代表上下文路径,docker会把上下文路径下面的文件和目录上传到Docker守护进程,一般是Dockerfile文件所在目录

如何运行容器:
1、拉取镜像 - docker pull busybox:1.2
2、查看本地镜像列表 - docker images
3、选择相应的镜像并运行 - docker run [-d] -name demo busybox:1.25 top

pull 拉取镜像
docker pull nginx:1.13.12
push 推送镜像
run 指定一个镜像运行一个容器
stop/start/restart 停止/启动/重启一个容器
rm 删除一个容器
rmi 删除一个镜像
inspect 显示一个容器详细信息
exec 在运行的容器中执行命令启动新进程

docker cp 命令将文件从容器拷贝到本地
docker cp <container_name_or_id>:<container_path> <local_path>
docker cp mycontainer:/app/file.txt /home/user

--保存镜像到本地
docker save nginx:1.13.12 > nginx_latest.tar
docker save -o nginx_latest.tar nginx:1.13.12

--将本地镜像文件导入docker容器
docker load -i nginx_1.13.12.tar
docker load --input nginx_latest.tar

--tag是一个用于给镜像打标签的命令
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag cr.registry.res.xxxx.cloud/library/nginx:v2.2.3 nginx:v2.2.3

$ docker login --username=dingtalk_koqsms registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/docker_cy/web:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/docker_cy/web:[镜像版本号]

[root@qianyi-node1 ~]# docker images
REPOSITORY                                   TAG             IMAGE ID       CREATED         SIZE
cr.registry.res.xxxx.cloud/library/nginx     v2.2.3          cf9845d2e2e3   11 months ago   40.7MB
nginx                                        v2.2.3          cf9845d2e2e3   11 months ago   40.7MB


容器的三要素
容器:容器可以用来装业务程序和依赖环境。本质上就是一个加了限定参数的进程。
镜像:运行容器所需要的所有文件集合。
镜像仓库:镜像仓库是集中存放容器镜像的场所。

3、docker容器服务常用启动脚本:

cat start-mysql.sh
docker run -itd \
--name mysql \
--restart always \
-p 30036:3306 \
-v $PWD/mysql/config-file.cnf:/etc/mysql/conf.d/config-file.cnf \
-v $PWD/mysql/data:/var/lib/mysql \
-v $PWD/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql \
-v /etc/hosts:/etc/hosts \
-e MYSQL_ROOT_PASSWORD=123xxxxxx \
mysql:5.7
cat start-redis.sh
docker run -itd \
--restart always \
--name redis \
-p 30079:6379 \
-v $PWD/redis/redis.conf:/etc/redis/redis.conf \
-v $PWD/redis/data:/data:rw \
redis:6-alpine \
redis-server /etc/redis/redis.conf

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值