Docker常用知识汇总

文章目录

  • Speed up download docker image
  • 基本操作
    • Docker image
    • Docker container
    • 使用 docker-compose 创建容器
  • Common solution
    • Copying files
    • mysql数据库应用
    • 使用dockerfile构建docker容器
    • 使用maven构建微服务

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


<plugin>
    <groupId>com.spotifygroupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>0.4.12version>
    <configuration>
        
        <imageName>microservice-discovery-eurekaimageName>
        <baseImage>javabaseImage>
        
        <entryPoint>["java","-jar","/${project.build.finalName}.jar"]entryPoint>
        <resources>
            <resource>
                <targetPath>/targetPath>
                <directory>${project.build.directory}directory>
                <include>${project.build.finalName}.jarinclude>
            resource>
        resources>
    configuration>
plugin>

# 构建镜像 
mvn clean package docker:build

命令 描述
brctl show brctl ,可以看到桥接到宿主主机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文件导入并创建镜像文件
load image load 从tar文件或者标准输入载入镜像
pull image pull 从某个registry拉取镜像或者仓库
push image push 推送镜像或者仓库到某个registry
save image save 打包一个或多个镜像到tar文件(默认是到标准输出)
tag image tag 标记一个镜像到仓库
pause container pause 暂停一个或者多个容器的所有进程
port container port 展示容器的端口映射
ps container ls 展示容器列表
rename container rename 重命名容器
restart container restart 重启容器
rm container rm 移除一个或多个容器
run container run 运行一个新的容器
start container start 启动一个或者多个容器
stats container stats 获取容器的实时资源使用统计
stop container stop 停止一个或多个运行容器
attach container attach 附加到一个运行的容器
commit container commit 从一个容器的修改创建一个新的镜像
cp container cp 在容器与本地文件系统之间复制文件/文件夹
create container create 创建新的容器
diff container diff 检阅一个容器文件系统的修改
exec container exec 在运行的容器内执行命令 container export 打包一个容器文件系统到tar文件
inspect container inspect 展示一个容器/镜像或者任务的底层信息
kill container kill 终止一个或者多个运行中的容器
logs : 获取容器的日志 -> docker logs f277b42f2b4c
top container top 展示容器运行进程
unpause container unpause 解除暂停一个或多个容器的所有进程
update container update 更新一个或多个容器的配置
wait container wait 阻塞直到容器停止,然后打印退出代码
events system events 获取服务器的实时时间
info system info 展示整个系统信息
login login 登录Docker registry
logout logout 从Docker registry登出
network network 管理Docker网络
node node 管理Docker Swarm节点
search search 在Docker Hub搜索镜像
service service 管理Docker services
swarm swarm 管理Docker Swarm
volume volume 管理Docker volumes
version version 显示Docker版本信息

你可能感兴趣的:(docker)