Docker常用知识汇总

本文介绍如何使用Docker加速镜像下载、基本操作命令、通过docker-compose创建容器等,并提供了mysql数据库容器化的具体步骤及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Speed up download docker image

配置加速器可以加快下载速度
https://www.daocloud.io/mirror#accelerator-doc

基本操作

# 查看主程序
docker inspect mysql:5.6.23
# 进入到容器终端
docker run -it mysql:5.6.23
# 查看Id
docker inspect -f '{{.Id}}' tomcat
# 提交一个image
sudo docker commit ubuntu localhost:5000/ubuntu:v2
# 创建一个容器
#                                    宿主主机:容器路径
docker run -it -v ~/home:/mnt/software ubuntu /bin/bash
# 提交镜像
docker commit 206f3ca7691b anewlinux
docker attach 94fb5a37e810
docker search cent
sudo docker save anewlinux>anewlinux.tar
docker rmi f7289a606379
docker exec -ti goofy_lamarr cat /var/jenkins_home/secrets/initialAdminPassword
docker-machine ls
docker-machine start
docker-machine env
docker-machine status
docker-machine ssh
docker-machine ip
docker-machine inspect

Docker image

# 获取镜像
docker pull ubuntu  #实际下载 ubuntu:latest镜像
# 查看镜像信息
docker images
# 查看详细的docker信息
docker inspect
# 删除image, -f表示强制删除
docker rmi -f f49eec89601e

Docker container

# 新建容器,将端口9000映射到9000
sudo docker run -d -p 9000:9000 321243a0d3d4
# 创建一个mysql容器
docker create -it mysql:5.6.23
# 查看进程
docker ps -a
# 启动进程
sudo docker start 8add3e12e5de
# 进入容器
docker exec -ti 4ec6eb656de6 /bin/bash
# 删除容器doc
docker rm  4ec6eb656de6

使用 docker-compose 创建容器

#在docker-compose.yml的目录下面执行
docker-compose up -d
  • docker-compose.yml例子
mysql:
    image: mysql:5.6.23
    ports:
      - "8006:3306"
    environment:
       TZ : "Asia/Shanghai"
       MYSQL_ROOT_PASSWORD: 123456
       MYSQL_DATABASE: rap_db
       - TZ=Asia/Shanghai
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
        - ./mysql_data:/var/lib/mysql
    restart: unless-stopped

Common solution

Copying files

# Copying files from host to Docker container
sudo docker cp host_path containerID:container_path
# Copying files from  Docker container to host
sudo docker cp containerID:container_path host_path

Multiple files contained by the folder src can be copied into the target folder using:

docker cp src/. mycontainer:/target
docker cp mycontainer:/src/. target

Note : In Docker versions prior to 1.8 it was only possible to copy files from a container to the host. Not from the host to a container.

mysql数据库应用

docker build -t mysql:5.6.23  /Users/chenlushun/mycourse/docker/mysql/
#                                              //这里是一个目录,而不是一个文件
docker run --volumes-from qiankrbase -p 3307:3307 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest
docker run --name wordpressdb -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6.23

使用dockerfile构建docker容器

提示: 在文件目录下面创建 Dockerfile

#环境
FROM java:8
#将本地文件挂到当前容器
VOLUME /Users/chenlushun/yc-code/demo/demo-docker-maven/target/demo-docker-maven-1.0-SNAPSHOT.jar
#拷贝文件到容器
ADD  demo-docker-maven-1.0-SNAPSHOT.jar  app.jar
RUN bash -c "touch /app.jar"
#暴露端口
EXPOSE 8761
#配置容器启动之后的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
docker build -t eacdy/test1 .  # 格式:docker build -t 标签 名称 Dockerfile的相对位置 
构建成功: Successfully built a7cc6f4de088 。
docker run -p 8761:8761 eacdy/t   #运行docker容器

访问的时候:
http://docker的宿主主机ip:8761

使用maven构建微服务

maven插件地址:https://github.com/spotify/docker-maven-plugin

<!-- 构建docker镜像 -->
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.12</version>
    <configuration>
        <!--镜像名称,这里需要注意命名规范,必须是[a-z0-9-_.]-->
        <imageName>microservice-discovery-eureka</imageName>
        <baseImage>java</baseImage>
        <!--这里是运行名称,比如说开启远程调试
            -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n
            或者设定jvm的参数,等等
        -->
        <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

# 构建镜像 
mvn clean package docker:build

命令描述
brctl showbrctl ,可以看到桥接到宿主主机docker0网桥上的虚拟网口
docker search busybox搜索一个镜像
docker pull busybox下载一个镜像
docker run -it busybox运行一个镜像
docker search -s 10 ubuntu搜索星号>=10 的相关镜像
docker images展示镜像列表
docker rmi image rm移除一个或多个镜像
build:从一个Dockerfile构建镜像 -->
history:展示镜像历史信息–> docker history mysql
import:用tar文件导入并创建镜像文件
loadimage load 从tar文件或者标准输入载入镜像
pullimage pull 从某个registry拉取镜像或者仓库
pushimage push 推送镜像或者仓库到某个registry
saveimage save 打包一个或多个镜像到tar文件(默认是到标准输出)
tagimage tag 标记一个镜像到仓库
pausecontainer pause 暂停一个或者多个容器的所有进程
portcontainer port 展示容器的端口映射
pscontainer ls 展示容器列表
renamecontainer rename 重命名容器
restartcontainer restart 重启容器
rmcontainer rm 移除一个或多个容器
runcontainer run 运行一个新的容器
startcontainer start 启动一个或者多个容器
statscontainer stats 获取容器的实时资源使用统计
stopcontainer stop 停止一个或多个运行容器
attachcontainer attach 附加到一个运行的容器
commitcontainer commit 从一个容器的修改创建一个新的镜像
cpcontainer cp 在容器与本地文件系统之间复制文件/文件夹
createcontainer create 创建新的容器
diffcontainer diff 检阅一个容器文件系统的修改
execcontainer exec 在运行的容器内执行命令 container export 打包一个容器文件系统到tar文件
inspectcontainer inspect 展示一个容器/镜像或者任务的底层信息
killcontainer kill 终止一个或者多个运行中的容器
logs :获取容器的日志 -> docker logs f277b42f2b4c
topcontainer top 展示容器运行进程
unpausecontainer unpause 解除暂停一个或多个容器的所有进程
updatecontainer update 更新一个或多个容器的配置
waitcontainer wait 阻塞直到容器停止,然后打印退出代码
eventssystem events 获取服务器的实时时间
infosystem info 展示整个系统信息
loginlogin 登录Docker registry
logoutlogout 从Docker registry登出
networknetwork 管理Docker网络
nodenode 管理Docker Swarm节点
searchsearch 在Docker Hub搜索镜像
serviceservice 管理Docker services
swarmswarm 管理Docker Swarm
volumevolume 管理Docker volumes
versionversion 显示Docker版本信息

2.运行一个mysql容器

docker run -p 3306:3306 --name qmm-mysql -v ~/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=669988 -d mysql:5.6
//创建容器时,最后mysql:5.6表示mysql镜像的版本,可以写,表示指定该版本;如果不写也可以,docker会自动在本地检测有没有最新的,如果没有会自动去docker hub上去下载。
上述命令各个参数的含义:

run 运行一个docker容器
–name 后面这个是生成的容器的名字qmm-mysql
-p 3306:3306 表示这个容器中使用3306(第二个)映射到本机的端口号也为3306(第一个)
-e MYSQL_ROOT_PASSWORD=123456 初始化root用户的密码
-d 表示使用守护进程运行,即服务挂在后台
查看当前docker容器的运行状态:

作者:吧啦啦小汤圆
链接:https://www.jianshu.com/p/d9b6bbc7fd77
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值