Docker command
一、Docker的基本使用和管理
1.1 安装docker
下载安装包
1
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.1-ce.tgz
创建系统配置文件
vim ~/docker.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34[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安装脚本
vim docker_install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18!/bin/sh
echo '解压tar包...'
sudo tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
sudo cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
sudo cp ~/docker.service /etc/systemd/system/
echo '添加文件权限...'
sudo chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
sudo systemctl daemon-reload
echo '启动docker...'
sudo systemctl start docker
echo '设置开机自启...'
sudo systemctl enable docker.service
echo 'docker安装成功...'
sudo docker -v配置文件
sudo vim /etc/docker/daemon.json
1
2
3
4
5{
"registry-mirrors":["https://registry.docker-cn.com"],
"exec-opts":["native.cgroupdriver=systemd"],
#"graph": "/data/docker" #可选,自定义镜像和容器存储目录
}安装
1
sh docker_install docker-18.06.1-ce.tgz
重启
1
2sudo systemctl daemon-reload
sudo systemctl restart docker卸载
1
2
3
4
5
6
7
8
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
1.2 Docker镜像操作
搜索镜像
docker search keyword
获取镜像
docker pull imageName
查看镜像信息
docker iamges
REPOSITORY:镜像所属的仓库
TAG:镜像的标签信息,用于标记同一仓库的不同镜像
为了方便使用镜像,可以使用
docker tag 名称:[标签] 新名称:[新标签]
IMAGE ID:镜像的唯一ID号
可通过ID号来获取对应镜像信息:
docker inspect id
删除镜像
docker rmi 仓库名称:标签 | ID号
存出镜像
docker save -o 存出文件名 存出的镜像
载入镜像
docker load < | -i 目标镜像文件
上传镜像
- 打上私有的标签
docker tag 名称:[标签] 新名称:[新标签]
- 上传
docker push 仓库名称:标签
- 打上私有的标签
1.3 Docker容器操作
- 创建
docker create [OPTIONS] 镜像 运行的程序
docker crate -it hivemq/hivemq4 /bin/bash
- -i:让容器的输入保持打开状态
- -t:让Docker分配一个伪终端
- 查看容器运行状态
docker ps -a
- 启动容器
docker start 容器ID | 名称
- 创建并运行容器
docker [OPTIONS] run 仓库名称:标签
- -d 后台运行
- –name:自定义一个名称
- -p:指定端口映射,指定容器端口映射到主机端口,
主机端口:容器端口
- -P:随机端口映射,容器内部端口映射到主机的一个随机端口
- -e:设置相关环境变量
- TZ:设置容器内时区,例如
TZ="Asia/Shanghai"
- -v:设置数据卷
- 创建数据卷:
-v 目录
- 创建数据卷并挂载到主机目录:
-v 宿主机目录:容器数据卷目录
- 挂载数据卷容器:
--volumes-from 容器名
- 创建数据卷:
- 容器的进入
docker exec -it 容器ID | 名称 /bin/bash
容器是一个与其中运行的shell命令共存亡的众安,shell命令运行则容器运行,shell命令停止则容器停止,使用exit命令会在退出容器的同时关闭容器(但可以docker ps、docker restart恢复),所以使用
ctrl+P & ctrl + Q
可以退出容器 - 容器终止运行
docker stop 容器ID | 名称
- 容器导出
docker export 容器ID | 名称 > 文件名
- 容器导入
cat 文件名 | docker import - 生成镜像名称:标签
- 容器的删除
docker rm 容器ID | 名称
1.4 容器拷贝文件
- 从容器复制文件到主机
1
docker cp 023ed1bab:usr/local/tomcat/README.md ./
- 从主机复制文件到容器
1
docker cp ./README.md 023ed1bab:usr/local/tomcat/
1.4 容器重命名
1 | docker rename oldname newname |
1.5 更新现有容器的重启策略
1 | docker update --restart=<策略选项> <容器名称或ID> |
<策略选项>
替换为no
、always
、on-failure
或unless-stopped
中的一个,根据需求选择
no
:容器不会自动重启(默认值)。always
:容器总是在退出时重启。on-failure
:仅当容器以非零状态退出时才重启。unless-stopped
:容器总是在退出时重启,除非它已被手动停止。
二、Docker安装常用应用
2.1 docker 安装 kafka
2.1.1 安装 zookeeper
1 | docker run -d \ |
2.1.2 安装 kafka
1 | docker run -d \ |
2.2 安装gogs
1 | docker run -d -p 10022:22 -p 13000:3000 -v /data/gogs:/data --name gogs-test gogs/gogs:0.13 |
2.3 安装 EMQX
1 | docker run -d \ |
1 | docker run -d |
2.4 安装Mysql
1 | !#/bin/bash |
2.5 安装ES
1 | docker network create itmentu-net |
docker 部署ES时一定要限制内存
2.6 安装Postgres
1 | docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres |
2.7 安装Hoppscotch
- .env
1 | #-----------------------Backend Config------------------------------# |
- 初始化数据库
1 | docker run -it --entrypoint sh --env-file .env hoppscotch/hoppscotch |
- 移除初始化生成的contailer、安装应用容器
1 | docker run -d --name hoppscotch -p 3000:3000 -p 3100:3100 -p 3170:3170 --env-file .env --restart unless-stopped hoppscotch/hoppscotch |
- 安装代理
1 | docker run -d --name hoppscotch-proxy -p 9159:9159 hoppscotch/proxyscotch |
- 初始化数据库
1 | docker run -it --entrypoint sh --env-file hoppscotch.env hoppscotch/hoppscotch |
- docker-compose 安装
1 | docker compose up -d |
发布时间: 2021-03-20 11:54:34
更新时间: 2024-09-23 12:52:59
本文链接: https://wyatt.ink/posts/Tools/8f5fd259.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!